Формы для таблиц справочников

Для просмотра, ввода и редактирования данных справочных таблиц (Цвета, Курсы валют, Производители, Магазины созданы формы ленточного типа) (см. рис. 18,19,20,21). В примечании форм - кнопки перехода по записям, добавления и удаления записей, созданные с помощью мастера.

формы для таблиц справочников - student2.ru

Рис.18. Форма «Производители»

формы для таблиц справочников - student2.ru

Рис.19. Форма «Цвета»

формы для таблиц справочников - student2.ru

формы для таблиц справочников - student2.ru Рис.20. Форма «Курс валют»

Рис.21. Форма «Магазины»

Форма Типы товаров – одиночная (карточка), то есть каждая запись на отдельной странице. Содержит две подчиненные формы - Группы товаров подчини и Размеры подчин. Связь между главной и подчиненными формами осуществляется по полям КодТипТов и Тип товара. То есть, листая в главной форме типы товаров, в подчиненных отображаются группы и размеры, относящиеся к текущему типу.

Каждая из форм (и главная, и подчиненные) содержат свои кнопки перехода по записям, добавления и удаления записей (см. рис. 22).

формы для таблиц справочников - student2.ru

Ф

Рис.22. Форма «Типы товаров»

Форма Товарыленточного типа, также содержит внизу кнопки. Для отображения текстовых значений в числовых полях - внешних ключах (Тип товара, Группа товара, Производитель) используются поля со списком (см. рис. 23).

формы для таблиц справочников - student2.ru

Рис.23. Форма «Товары»

Например, поле со списком Тип товара в источнике данных содержит запрос:

SELECT Типы_товаров.КодТипТовара, Типы_товаров.Тип_товара FROM Типы_товаров;

При этом заданы Число столбцов = 2, Ширина столбцов = 0см;2см, то есть ключевое поле-счетчик КодТипТовара скрыто (ширина 0см), а отображается текстовое значение типа товара.

Возле каждой записи форма содержит кнопку открытия формы ТоварыЦветаРазмеры с фильтром по текущему товару для просмотра ассортимента каждой единицы товара.

Кнопка содержит программный код на языке VBA на событие Нажатие кнопки:

Private Sub Кнопка17_Click()

DoCmd.OpenForm "ТоварыЦветаРазмеры", , , "[Товар] = " & Me.КодТовара

End Sub

Здесь используется команда DoCmd.OpenForm , открывающая форму с условием отбора: товар равен текущему значению КодТовара на текущей форме.

При выборе группы товара из списка учитывается выбранный тип товара (данные отфильтровываются).

Для этого на событие Получение фокуса поля со списком Группа товаров (см. рис. 24).:

Private Sub Группа_товара_GotFocus()

Me.Группа_товара.RowSource = "SELECT КодГруппы, Группа_товаров, Тип_товара FROM Группы_товаров WHERE Тип_товара = " & Me.Тип_товара

Me.Группа_товара.Requery

формы для таблиц справочников - student2.ru End Sub

Рис.24. Форма «Цвета и размеры товаров»

В первой строке кода меняется источник строк поля со списком Группа товаров с учетом выбранного Типа товара на форме.

Во второй строке кода обновляется это поле со списком.

На событие Потеря фокуса поля со списком Группа товаров источник строк принимает свой первоначальный вид (без условия отбора по типу товара):

Private Sub Группа_товара_LostFocus()

Me.Группа_товара.RowSource = "SELECT КодГруппы, Группа_товаров, Тип_товара FROM Группы_товаров"

Me.Группа_товара.Requery

End Sub

Форма ТоварыЦветаРазмеры также ленточного типа.

На следующем рисунке представлен пример нажатия кнопки Цвета, размеры на форме Товары (см. рис. 25):

формы для таблиц справочников - student2.ru

Рис.25. Форма «Цвета и размеры товаров»

То есть можно просмотреть (а также добавить и отредактировать) цвета и размеры товара Женский шарф BUERBERY тонкий матерчатый с бахромой.

Формы для основных таблиц

Форма Поставки: источник формы - запроса Поставки запрос для отображения на форме расчетных значений цены (см. рис. 26).

формы для таблиц справочников - student2.ru

Рис.26. Форма запроса «Поставки»

Форма Продажи в качестве источника содержит запрос Продажи Запрос для отображения рассчитанных значений (см. рис. 27):

формы для таблиц справочников - student2.ru

Рис.27. Форма запроса «Продажи»

Для учета количества товара, который есть в наличии, на событие После обновления поля Кол-о создан следующий программный код:

Private Sub Кол_о_AfterUpdate()

Ost = DLookup("Остаток", "Текущие_остатки", "ТовЦветРазм = " & Me.ТовЦвРазм & " And Магазин = " & Me.Магазин)

If Nz(Ost, 0) = 0 Then MsgBox "Нет в наличии данного товара!"

If Кол_о > Ost Then MsgBox "Недостаточное количество есть в наличии! Текущий остаток - " & Ost

End Sub

В первой строке кода записывается в переменную Ost текущий остаток текущего товара в текущем магазине из запроса Текущие_остатки.

Во второй строке проверяется, если полученный остаток равен нулю, то выдается сообщение «Нет в наличии данного товара!»

В третьей строке проверяется, если текущее введенное количество товара меньше чем полученный остаток, то выдается сообщение "Недостаточное количество есть в наличии! Текущий остаток».



Наши рекомендации