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

On Error GoTo Err_Кнопка13_Click

DoCmd.GoToRecord , , acNewRec

Exit_Кнопка13_Click:

Exit Sub

Err_Кнопка13_Click:

MsgBox Err.Description

Resume Exit_Кнопка13_Click

End Sub

Операторы On Error ,MsgBox Err.Description ,Resume являются операторами БЕЙСИКа и служат для организации обработки ошибок. Это стандартный набор операторов, создаваемый мастером построения кнопок. Оператор DoCmd.GoToRecord , , acNewRec осуществляет создание новой записи и переход к ней.

Однако в задачу кнопки входит также создание нового номера записи и занесение текущей даты в дату заказа. Поэтому в процедуру после оператораDoCmd.GoToRecord , , acNewRecнеобходимо добавить следующие операторы:

If Nz([Номер заказа]) = 0 Then

[Номер заказа] = Nz(DMax ( "[Номер заказа]" , "[Заказ]")) +1

[Дата заказа] = Date()

End If

DoCmd.GoToControl " ПолеСоСписком8"

Этим фрагментом программы в поле «Номер заказа», если он равен нулю или пуст, заносится максимальный код товара увеличенный на единицу; в поле «Дата заказа» заносится системная дата и последним оператором управление передается объекту «ПолеСоСписком8». Это поле со списком, которым мы заменили «Код клиента».

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

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

On Error GoTo Err_Кнопка13_Click

DoCmd.GoToRecord , , acNewRec

If Nz([Номер заказа]) = 0 Then

[Номер заказа] = Nz(DMax ( "[Номер заказа]" , "[Заказ]")) +1

[Дата заказа] = Date()

End If

DoCmd.GoToControl "ПолеСоСписком17"

Exit_Кнопка13_Click:

Exit Sub

Err_Кнопка13_Click:

MsgBox Err.Description

Resume Exit_Кнопка13_Click

End Sub

Создание кнопки оплата.

Следующим объектом, который нужно создать является кнопка «Оплата». Кнопка создается обычным путем. В появившейся серии окон нужно выбрать позиции, как показано на рисунках.

Private Sub Кнопка13_Click() - student2.ru

Private Sub Кнопка13_Click() - student2.ru Private Sub Кнопка13_Click() - student2.ru

Private Sub Кнопка13_Click() - student2.ru Private Sub Кнопка13_Click() - student2.ru

Окончание построения кнопки выполняется обычным путем.

Создание поля с итоговой суммой.

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

Private Sub Кнопка13_Click() - student2.ru

Выражение [Спецификация].Form![Поле15] попадет в свойство «Данные» построенного поля, если при выборе подсвеченных позиций построителя выражений нажать кнопку «Вставить», а затем «ОК».

После сохранения форма «Заказы» готова к работе. Ее конечный вид должен быть примерно таким.

Private Sub Кнопка13_Click() - student2.ru

В результате всей предыдущей работы были созданы ряд форм для ввода данных в базу. Однако выбор и открытие этих форм из вкладки «Формы» не удобен для конечного пользователя. Необходимо создать организующую форму с удобным интерфейсом, которая позволила бы работать с набором форм, вызывая их с помощью кнопок. Для создания таких форм в ACCESS предусмотрен механизм создания кнопочных форм.

Создание кнопочных форм

Кнопочная форма создается с помощью мастера кнопочных форм, который запускается путем выбора пункта меню «Сервис – Служебные программы – Диспетчер кнопочных форм». Работа мастера начинается с появления следующего окна.

Private Sub Кнопка13_Click() - student2.ru Private Sub Кнопка13_Click() - student2.ru

Private Sub Кнопка13_Click() - student2.ru

Private Sub Кнопка13_Click() - student2.ru

В результате будет создана кнопочная форма с кнопкой вызова формы «Товар». Кнопки вызова других созданных форм создаются аналогичным образом. В результате добавления вызовов форм ввода, создания кнопочной формы для вызова отчетов и вставке ссылки на него, а так же построения кнопки выхода из приложения окно конструктора примет вид:

Private Sub Кнопка13_Click() - student2.ru

После создания всех кнопок и закрытия окон мастера открытая кнопочная форма примет следующий вид:

Private Sub Кнопка13_Click() - student2.ru

Нажатие первых трех кнопок приведет к вызову соответствующих экранных форм, четвертая кнопка откроет страничку отчетов, которые будут рассмотрены ниже, пятая закроет приложение. Кнопочную форму можно декорировать, вставив в нее рисунки и надписи.

Внимание! Прежде чем продолжать работу заполните базу данных: заполните справочник товаров и справочник клиентов (по 10-15 наименований ); введите несколько заказов (больше 10), указав разные варианты оплаты – полная, частичная оплата и неоплаченные заказы.

Создание запросов

Запрос представляет собой формализованное требование на манипуляцию данными базы. Под манипуляцией понимается совокупность действий, включающих выборку, изменение и добавление информации в базе данных. В него входит перечень полей для просмотра и условий отбора данных. В примере задания заданы четыре запроса:

1. Какие клиенты не оплатили заказы на данный момент;

2. Каково состояние оплаты заказов клиентами – сумма заказа , оплачено, отклонение;

3. Какие клиенты заказали тот или иной товар и сколько;

4. Какова стоимость продаж за заданный период.

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