powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Скрин
25 сообщений из 31, страница 1 из 2
Скрин
    #32109118
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, спасибо тем, кто отвечает...
Вот адрес схемы данных: www.oprich.narod.ru/scrin.jpg быть может так станет понятнее, в чем проблема.
Так вот, нужно, чтобы количество товара убывало со склада "Предметы" по мере покупки "Покупка" и прибывало по мере поступления "Комиссия", "Продажа".
Помогите, пожалуйста,
Киот
...
Рейтинг: 0 / 0
Скрин
    #32109242
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У тебя изначально схема неправильная и неоптимальная. Научный подход сможешь сам применить? Третья нормальная форма, там, и прочее?... Нет смысла советовать что-то сделать, когда это с самого начала делается неправильно.
...
Рейтинг: 0 / 0
Скрин
    #32109674
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как правильно? Расскажи как пятилетнему ребенку, а то задача стоит, а как ее решать - не знаем, вот и импровизируем.
...
Рейтинг: 0 / 0
Скрин
    #32109760
Kriven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы (это мое личное мнение), для начала, сократил бы таблицы "Расходник", "Приходник", "Комиссионик" до таблицы "Операции" с указанием типа (расход, приход, комиссииа), что позволит в случае добавления операции (например, "подарок") не строить новую таблицу, а добавить только тип операции. Соответственно сократятся таблицы "Продажа", "Покупка", "Комиссия" до 1-й таблицы (допустим с именем "СписокПредметов"). А вот таблицу Предметы можно разбить на две ОписаниеПредмета и Количество на Складе, хотя я бы количество на складе вообще не хранил, а вычислял из "Список предметов".
...
Рейтинг: 0 / 0
Скрин
    #32109769
Виктор0000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, Петр!
...
Рейтинг: 0 / 0
Скрин
    #32111247
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Киот:

Я бы рад объяснить, но у меня времени не столько много, как хотелось бы. Но всю схему данных надо обязательно переделать. К сожалению, я в этом помочь не могу. По крайней мере, в ближайшую неделю.
...
Рейтинг: 0 / 0
Скрин
    #32111413
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для каждой операции удобно задать знак, в соответствии с которым будет меняться количество товара. А для расчета количества просто сделать запрос с учетом этого знака, тогда количество будет автоматически или прибавляться, или отниматься.
У нас такая табла:
idop - oper - z1 - z2
1. Код
2. Наименование операции
3. Знак для "продавца" (от кого перемещается товар): 1 или -1
4. То же для "покупателя"

Соответственно, одним запросом (Кол-во * знак) можно посчитать результат
...
Рейтинг: 0 / 0
Скрин
    #32112496
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для AlexJuice
Слушай, а исходник ваш можно посмотреть?))) Понимаю, что наглость, но со своей стороны обещаем, клятвенно заверяем, и пр., что только посмотрим, свое подправим и убъем насмерть.
С уважением,
Киот
PS
...
Рейтинг: 0 / 0
Скрин
    #32112508
boar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AlexJuice

Я бы то же посмотрел....
...
Рейтинг: 0 / 0
Скрин
    #32113090
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Kriven
Если объединить "Расходник", "Приходник" и пр., то как тогда присваивать уникальные коды приходному и расходному ордерам, комиссионному соглашению?
С уважением,
Киот
...
Рейтинг: 0 / 0
Скрин
    #32113441
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Если объединить "Расходник", "Приходник" и пр., то как тогда присваивать уникальные коды приходному и расходному ордерам, комиссионному соглашению?

Если присваивать требуется самостоятельно, то просто отбирая последний номер того документа с котрым работаешь, т.е. если вводишь приходник делаешь типа DMAX=("Поле с Номером", "Таблица", "ПризнакДокумента=" & ME!ПризнакДокумента), правда все равно должен существовать счетчик, к-ый будет скрыт от пользователя.

Т.е. если в форме есть поле ME!ПризнакДокумента (Приходник, Расходник, Договор), то функция вернет значение максимального номера по данному типу документа.
Правда функцию DMax лучше заменить другой, если прога будет работь в сети

Так же надо будет вставить проверку на совпадение номеров по одному ПризнакуДокумента (чтоб пользователь не ввел два раза Приходник с одинаковам номером).

В итоге получиться:
1. Поле счетчика
2. Поле с номером документа (числовое, повторение допускается)
3. Поле с номером признака документа ( связанное 1 ко многим с таблицей ПризнакДокумента)
4. Все остальные поля, описывающие документ
...
...
Рейтинг: 0 / 0
Скрин
    #32113999
Kriven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Киот
А для чего это нужно?
У тебя сушествует счетчик и тип документа, эти два поля уже уникальный код который никогда не повториться.
...
Рейтинг: 0 / 0
Скрин
    #32114131
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Kriven
То есть ситуация, когда у приходника и расходника будут одинаковые номера исключена?

Senin Viktor
Спасибо. Я-то хотел чтобы номера проставлялись автоматически, а в этой модели (если я правильно понял) их всеже придется писать самостоятельно?

С уважением,
Киот
...
Рейтинг: 0 / 0
Скрин
    #32114205
Kriven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не номера а уникальный ключь..
а насчет номеров документов - можно нумеровать дробью т.е. уникальный код операции/уникальный ключ типа операции (получится байда типа 123/1, 124/1, 125/2 и т.п.) Хотя в принципе при такой схеме можно использовать и только ключь операции (все равно он не повториться).
Кстати господа эксперты выше предложенная мной схема приемлима или нет? Я видь самоучка (причем только по справке, в наше деревне даже хороших детских книг не найдеш).
...
Рейтинг: 0 / 0
Скрин
    #32114645
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да это-то я понял. А вот, скажем, расходник №3 и приходник №3 не смогут существовать вместе? Или, как это у тебя означено, 3/1 и 3/2. Такого ведь не может быть при твоей схеме.
...
Рейтинг: 0 / 0
Скрин
    #32114650
Kriven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, номера последовательно присваиваться не будут.
Сдесь действительно нужно использовать функции типа Max т.е. вытягивать максимальное значение и прибавлять к нему единицу или, что то в этом роде...
...
Рейтинг: 0 / 0
Скрин
    #32114687
Kriven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Киот я тебе, по максимальному номеру, набросал кое че посмотри может понадобиться:
http://www.kriven.narod.ru/
...
Рейтинг: 0 / 0
Скрин
    #32115235
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Получил. Разбираюсь.
...
Рейтинг: 0 / 0
Скрин
    #32115426
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, интересная придумка. Только кривая она. Если удалить все записи из таблицы1 и начать заново щелкать, то появляется куча пропусков или же такая хрень: приход 1, 2, 3 расход 4, 5, 6....
Как тут быть?
А что наш вариант совсем некудышный?
С уважением,
Киот
...
Рейтинг: 0 / 0
Скрин
    #32115466
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Предлагаю функцию, которая выдает числа строго по порядку.

Заводим вспомогательную таблицу - с одним полем типа Counter и без данных. Пусть для определенности поле зовут Cou. И тогда:

Function Sequence(TableName As String) As Long
With CurrentDB
With .OpenRecordset(TableName, dbOpenDynaset)
.AddNew
Sequence=!Cou
'главное, что тут Update не нужен
.Close
End With
End With
Ned Function

Однако внимание - этому MDB нельзя делать Compact, а то значение этого поля обнулится. Поэтому лучше, чтобы эта таблица была линкнутая.

И теперь можно таких таблиц завести несколько, для каждой операции свою.
...
Рейтинг: 0 / 0
Скрин
    #32115527
Kriven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Киот, как он не будет кривой если от момента его создания до закачки на страничку прошло 15 минут?....
...
Рейтинг: 0 / 0
Скрин
    #32116143
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Владимир Саныч!
Скажите, а в работе это никак нельзя узреть, а то я с функциями в больших контрах... и вообще тугодум))) Не могли бы Вы...?
С благодарностью,
Киот
...
Рейтинг: 0 / 0
Скрин
    #32116160
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Kriven
А на что это влияет?
...
Рейтинг: 0 / 0
Скрин
    #32116198
Kriven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На то что над любой проблемой надо работать (нужно время)
...
Рейтинг: 0 / 0
Скрин
    #32116261
Киот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут я согласен)))) Что думаешь о функции предыдущего оратора?
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Скрин
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]