Проектирование базы данных "Снабжение", страница 4

Формы «Поставщики», «Заказчики», «Каталог товаров» и «Предложения» созданы для внесения и редактирования соответствующей информации. Формы «Заявки» и «Реализация» открываются только для внесения новой записи, просмотр и редактирование полей в них невозможны. Для внесения корректив необходимо открыть соответствующие таблицы и работать непосредственно с ними. Это сделано для защиты информации, не подлежащей изменению. Дело в том, что дата заявки или дата реализации не могут быть изменены, чего нельзя сказать, например, относительно адреса поставщика или цены предложения. Именно поэтому выше перечисленные формы можно редактировать, а не только дополнять записями. Возможность редактирования или отсутствие таковой определяется при создании кнопочных форм, а именно при выборе команды, выполняемой при нажатии соответствующей кнопки («Открытие формы в режиме добавления» либо «Открытие формы в режиме редактирования»).

При создании форм я пользовалась как мастером форм (формы «Поставщики», «Заказчики», «Каталог товаров», «Заявки»), так и создавала в режиме конструктора (форма «Реализация»).

Ниже приведены примеры форм БД «Снабжение».

Форма «Заказчики».

Форма “Поставщики”

Форма «Каталог товаров»

Форма «Реализация»

Кроме выше перечисленных форм кнопочная форма «Формы» содержит еще одну кнопку, подписанную как «Счета-фактуры». Щелчок мышью по данной кнопке приводит к открытию служебной формы «Выбор покупателя …», а затем «Выбор даты счета-фактуры». В пустые поля этих форм вводятся параметры поиска, причем об поля являются полями со списком. Поле со списком формы «Выбор покупателя …» является связанным с полями «№ заказчика» и «Наименование» в таблице «Заказчики» инструкцией SELECT DISTINCTROW [Заказчики].[№ заказчика], [Заказчики].[Наименование] FROM [Заказчики], помещенной в строку «Источник строк» раздела «Данные» окна свойств поля (имя поля «Заказчик»). Т.о., выбирая реально не заказчика, а его номер, мы свободно ориентируемся, т.к. каждый номер сопровождается наименованием покупателя.

Данная форма представлена на рисунке:

 

После выбора покупателя щелчком мыши по кнопке «Далее» данной формы (на рисунке она не видна) мы переходим к следующей  служебной форме «Выбор даты счета-фактуры»:

Поле со списком данной формы (именуемое в свойствах как Дата) является связанным с запросом «Промежуточный» инструкцией SELECT DISTINCTROW [Промежуточный].[Наименование], [Промежуточный].[Дата отпуска], [Промежуточный].[№ отпуска] FROM [Промежуточный]], помещенной в строку «Источник строк» раздела «Данные» окна свойств поля. Этот запрос считывает из формы «Выберите покупателя…» выбранного покупателя при помощи инструкции Is Not Null And [Forms]![Выбор покупателя (для счетов-фактур)]![Заказчик] (точнее его номер), а затем отбирает из таблиц соответствующие записи о датах и номерах отпусков, осуществленных для данного покупателя.

После щелчка мыши по кнопке «Далее» открывается форма «Служебный «Счет-фактура»», которая является главной и включает в себя подчиненную форму «Служебный «Счет-фактура»1». Обе формы (и главная, и подчиненная) строятся на базе запроса «Служебный «Счет-фактура»». Этот запрос считывает из формы «Выбор даты счета-фактуры» при помощи инструкции Is Not Null And [Forms]![Выбор даты счета-фактуры]![Дата]  дату реализации и соответствующий ей  номер отпуска, а затем  отбирает из таблиц («Реализация», «Каталог товаров», «Заказчики», «Заявки» и «Предложения»)соответствующие записи о наименовании заказчика, его реквизиты, цены товаров и т.д., соответствующие данной реализации (данному отпуску).

Причем в данном запросе используются групповые операции и статистическая функция MIN (минимальное значение поля в группе). Статистические вычисления производятся по полю «Цена» и заключаются в выборе минимальной цены, по которой заказанный товар предлагается его поставщиками.

Подчиненная форма «Служебный «Счет-фактура»1»содержит вычисляемые поля:

«Сумма»: определяется как [Количество]*[Min_Цена]

«Сумма НДС» =[Всего с НДС]-[Сумма]

«Всего с НДС» =[Сумма]*1,2.