powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание записи в главной форме при выборе товара в подчиненной форме
15 сообщений из 15, страница 1 из 1
Создание записи в главной форме при выборе товара в подчиненной форме
    #39446064
MaKaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Есть таблицы: Заказы, Списание, СоставСписания, Товары.
На форме расположено несколько форм, подчиненных друг другу:
Заказ (главная) -> Списание (подч. 1 ур.) -> СоставСписания (подч. 2 ур.)

На форме Списание новая запись создается только после ручного выбора какого-либо значения (например Даты).
Можно ли сделать так, чтобы при выборе товара в подчиненной форме "СоставСписания" создавалась запись в "Списание" (ну или при нажатии кнопки на форме "Заказ")?
Вопрос возник потому что я хочу скрыть все поля на форме "Списание" (КодЗаказа, КодСписания, Дата), оставив только форму для выбора товара (СоставСписания).
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39446133
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaKaKВопрос возник потому что я хочу скрыть все поля на форме "Списание" (КодЗаказа, КодСписания, Дата),

с точки зрения вашей философии (по барабану когда и на основании какого документа было списание) вам проще упразднить и форму списание и таблицу списания за ненадобностью...
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39446141
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чо ?
Сделать вообще две таблицы:
Заказ :
- №
- Дата
Товар :
- Наименование
- Признак списания
Ну и все... Дата и номер заказа есть... товар фигурирующий в заказе есть... товар без галочек пошел в заказ, товар с галочками "умер" при выполнении заказа (списан)
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39446180
MaKaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagс точки зрения вашей философии (по барабану когда и на основании какого документа было списание) вам проще упразднить и форму списание и таблицу списания за ненадобностью...
Списание привязано к номеру текущего заказа - подчиненная форма сама подхватывает "КодЗаказа", ДатаСписания подставляется из поля с формы "Заказ" (кнопка на предварительный расчет требуемых материалов (товара)), КодСписания - счетчик. При этом поля "Дата" и "Дополнительно" в таблице "Списание" нужны на случай отвязанного от заказа списания (продажа комплектующих, гарантийная замена).
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39446278
MaKaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе, вопрос решается довольно просто, если через нажатие кнопки присвоить в одно из полей нужное значение (например КодЗаказа):
Forms!Заказ!Списание.Form!КодЗаказа.Value = Forms!Заказ.Form!КодЗаказа
Запись создается, и, вроде как, все работает. Но сделать то же самое через какое-то из событий поля выбора товара все равно не получается.
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39446389
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaKaKСписание привязано к номеру текущего заказа
противоречие с этим
MaKaKПри этом поля "Дата" и "Дополнительно" в таблице "Списание" нужны на случай отвязанного от заказа списания

Следовательно отвязанное от всего списание это мусор в БД (не понятно кто, что и на основании чего списал)...
Если в заказе поставить признак тип заказа: Обычный, Продажа комплектующих, Гарантийная замена, ...
То в заказе с признаком Продажа комплектующих и Гарантийная замена весь товар будет с признаком списания, а в обычном заказе будет товар и с признаком списания (бой, брак) и без признака списания... опять же таблица списание - как пятое колесо в телеге (дублирует параметры заказа)

MaKaKСписание привязано к номеру текущего заказа - подчиненная форма сама подхватывает "КодЗаказа", ДатаСписания подставляется из поля с формы "Заказ"
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39446393
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaKaK,
В общем как ни крути, если в таблице Списание те же параметры, что и в таблице Заказ (дублирование) - таблица Списание лишняя...
Таблицы Товары и СоставСписания можно вешать на таблицу Заказ и не париться... Например при гарантийной замене - это все равно Заказ, просто для него в СоставСписания будут строки, а в таблице Товар не будет строк
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39447515
MaKaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagВ общем как ни крути, если в таблице Списание те же параметры, что и в таблице Заказ (дублирование) - таблица Списание лишняя...
Там несколько иная ситуация:
Заказ - по сути перечень требований (характеристик) к будущему изделию.
Товар - не 1-а таблица, а 3 (на данный момент). Делалось для того, чтобы где-то хранить характеристики различных видов деталей. Они (характеристики) используются на форме Заказа для подсчета и вывода информации о готовом изделии. Остаток (списание и поступление) - свой для каждой таблицы.

Если в самом заказе будут выбрано несколько деталей 1-го типа, то нужна будет как-то различать "главную" деталь и "дополнительные" для подсчета общих параметров изделия. Поэтому в таблице "Заказ" сделал поля выбора определяющих изделие деталей, а списание считается через форму или задается вручную. Не знаю насколько это правильно, были другие варианты, но при моих знаниях access`a, они показались мне слишком сложными.
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39447763
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaKaK,

Так... мысли вслух...
1. Возьмем ветку: Бегущие строки - СписаниеМ - СписаниеСоставМ - Модули...
Если выбросить таблицу СписаниеСоставМ, а поля КодМодуля и КоличествоМ перенести в таблицу СписаниеМ, то все становится на свои места и решается ваша проблема с лишними формами.
+ вы имеете дополнительный бонус по реалистичности списания Модулей с точки зрения даты ибо в вашем случае - модули списываются в один день, хотя могут быть случаи, когда некоторые модули в заказ попали например завтра...
2. Аналогично можно избавиться от таблиц: СписаниеСоставК, СписаниеСоставДД.
Я бы пошел еще дальше...
Если добавить Классификатор Типов Устройств: Модули, Контроллеры, Другие,... то можно получить гибкую систему, а не заточенную только под три вида Устройств + сократить количество таблиц минимум в 2 раза:
- Всего одна таблица Списание с признаком типа устройства вместо трех.
- Всего одна таблица Поступление с признаком типа устройства вместо трех.
- Всего одна таблица ПоступлениеСостав вместо трех.
- Всего одна таблица Устройства с признаком типа устройства вместо трех - полей не так уж много и в зависимости от типа устройства - лишние можно скрывать в интерфейсе или разбросать по вкладкам, а не нужные вкладки скрывать... думаю до EAV тут далековато будет...

Ну это так... вскользь... по тому, что есть и не зная изначального ТЗ... Левую часть не смотрел, - нет времени...
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39448568
MaKaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagЕсли выбросить таблицу СписаниеСоставМ, а поля КодМодуля и КоличествоМ перенести в таблицу СписаниеМ, то все становится на свои места и решается ваша проблема с лишними формами.
Вы правы, таблица Списание лишняя. Сделал вместо нее СоставЗаказа (дата из Заказа), а все остальные случаи списания вынес в отдельную ветку схемы (своя Дата).

vmagЯ бы пошел еще дальше...
Если добавить Классификатор Типов Устройств: Модули, Контроллеры, Другие,... то можно получить гибкую систему, а не заточенную только под три вида Устройств + сократить количество таблиц минимум в 2 раза:
Как в этом случае сделать поля на форме, отображающие характеристики конкретной детали? Сейчас все поля характеристик ссылаются на 1-у деталь. Пока пришло в голову только присвоение значений через VBA при выборе детали и открытии записи.

И что за таблицы Деталь_1, Деталь_2 (копии таблицы Деталь) отображаются в схеме данных после задания источника строк в полях выбора деталей в таблице Заказ?
SELECT [Деталь].[Код], [Деталь].[Название] FROM Деталь WHERE [Деталь].[Категория] = 1;
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39449102
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaKaKИ что за таблицы Деталь_1, Деталь_2 (копии таблицы Деталь)

Это вы у меня спрашиваете? Удалите их из схемы БД...
Посмотрите на верхний рисунок и на этот - абсолютно разные базы данных, вы должны понимать, что нужно практически все писать с нуля... Запросы, формы и прочее из старой БД не подойдут их все нужно ТУПО УДАЛИТЬ
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39449111
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaKaK,
MaKaKпосле задания источника строк в полях выбора деталей в таблице Заказ?

и бросайте это дело... не нужно на уровне таблиц делать поля подстановки и прочую ерунду, уже сейчас путаетесь где что, а еще интерфейс не начинали... таблички сделали, связи нарисовали - всё, больше в раздел таблицы не лазим (только для создания и корректировки таблиц и связей)
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39449259
MaKaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagMaKaKИ что за таблицы Деталь_1, Деталь_2 (копии таблицы Деталь)Это вы у меня спрашиваете? Удалите их из схемы БД...
Да хз, для чего-то же они появляются, когда несколько полей одной таблицы имеют одинаковый источник строк. Думал можно их как-то использовать.

Но самый главный вопрос, который и вынудил меня пойти по 1-му пути, это:
Как в этом случае сделать поля на форме, отображающие характеристики конкретной детали? Сейчас все поля характеристик ссылаются на 1-у деталь.
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39449648
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaKaK,

В таблице ЗаказСостав у вас перечень деталей в заказе....
Что это за детали - определяется таблицей Категория...
...
Рейтинг: 0 / 0
Создание записи в главной форме при выборе товара в подчиненной форме
    #39449723
MaKaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,
Поля для каждой детали в таблице заказ сделаны для подсчета общих характеристик изделия на форме. Т.е. через таблицу ЗаказСостав может быть списано сколько угодно деталей (покупка дополнительных и запасных частей) и считать по ним не получится.

Предполагается так:
Пользователь выбирает используемый Модуль (характеристики: Ширина=32, Высота=16, Потребление=25)
Задает составляемый из них экран - 5х2, форма считает характеристики экрана: Ширина=32х5=160, Высота=16х2=32, Потребление=10х25=250.
Далее заполняются требования типа связи, например WiFi.
В поле выбора контроллера остаются только те, которые поддерживают WiFi и получившийся размер.
Выбирается тип используемых блоков питания, подсчитывается их количество.
Кнопка предварительного расчета заполняет СоставЗаказа, который вручную дополняется не входящими в изделие деталями.

И, найдя потом этот заказ, пользователь видит не просто список деталей, при этом не понятно, сколько из них и как задействовано, а параметры изделия. Для этого, на сколько я понимаю, мне нужно извлекать характеристики конкретных деталей из таблицы, где перечислены все возможные характеристики, но как это сделать пока не знаю.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание записи в главной форме при выборе товара в подчиненной форме
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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