Пример: при вводе поля Дата рождения в таблице Сотрудники проверить возраст сотрудника. Если он меньше 18 лет, сообщить об ошибке, удалить дату и обеспечить ее повторный ввод. Порядок действий:
создать с помощью Автоформы в столбец форму для ввода данных в таблицу Сотрудники;
открыть созданную форму в режиме конструктора;
выделить поле Дата рождения, открыть окно свойств для данного поля (кнопка Свойства на панели инструментов или контекстное меню, пункт Свойства);
в окне свойств выбрать вкладку События, щелкнуть в строке После обновления, щелкнуть по кнопке Построитель выражений, выбрать пункт меню Программы, щелкнуть по кнопке ОК; при этом мы попадаем в процедуру обработки события, связанного с обновлением поля Дата рождения;
внести следующие операторы
If Year(Date()) – Year([Дата рождения]) < 18 Then
[Дата рождения] = Null
[Должность].SetFocus
[Дата рождения].SetFocus
MsgBox “ Возраст меньше 18 лет“, vbOKOnly
End If
сохранить процедуру, закрыть окно процедуры и окно свойств, сохранить форму, выйти из режима конструктора.
Вычисление итоговых значений для записей формы. Вычисление итоговых значений для записей формы выполняется с помощью встроенных статистических функций, записываемых в качестве выражения в вычисляемых элементах управления.
Пусть требуется просуммировать значения поля КОЛИЧЕСТВО в таблице ПОСТАВКА. Порядок действий следующий:
отразить форму ПОСТАВКА в режиме конструктор;
нажать на панели элементов кнопку Поле и разместить элемент управления в области примечания формы (итоговые значения всегда нужно размещать в области примечания формы);
выделить элемент свободный и внести туда выражение
= Sum([КОЛИЧЕСТВО]), при этом можно внести формулу сразу или воспользоваться окном свойств, где выбрать вкладку Данные,строку Данные,кнопку Построитель выражений;
во вкладке Макет окна свойств можно задать формат поля и количество цифр в десятичной части числа;
выделить элемент поле и внести итоговую надпись.
Вычисление итоговых значений для записей подчиненной формы и вывод их в основной форме. Основная форма и ее подчиненная форма строятся на основе таблиц, между которыми установлена связь типа «один-ко-многим». При этом в основной форме выводится только одна запись, а в подчиненной форме – несколько записей, которые подчинены ей. При расчете итогового значения для группы записей подчиненной формы вычисляемое поле может быть отображено в области данных основной формы.
Пример. Пусть требуется подсчитать для каждой модели суммарную продажу (Sum([Количество])) в подчиненной форме Продажа-ПФ и вывести эти данные в области данных главной формы Устройства-Продажа. Порядок действий следующий:
отобразить подчиненную форму Продажа-ПФ в режиме конструктора;
в данной форме в области примечания формы создать вычисляемый элемент управления (с помощью кнопки Поле панели элементов) и внести туда выражение, содержащее статистическую функцию подсчета суммы =Sum([Количество]); запомнить имя созданного элемента управления (допустим это было имя “Поле10”); сохранить произведенные действия и выйти из режима конструктора;
отобразить основную форму Устройства-Продажа в режиме конструктора; в основной части формы создать поле с помощью кнопки Поле на панели элементов и записать туда выражение:
= [Продажа-ПФ] . [Form]![Поле10]
Это выражение является ссылкой на элемент управления Поле10 в подчиненной форме.
Общий формат такой ссылки имеет вид:
Первый вариант ссылки
=[Имя подчиненной формы].[Form]![Имя поля в подчиненной форме]
Или второй вариант ссылки
=Forms![Имя главной формы]![Имя подчиненной формы]![Имя поля].
Например:
=Forms![Устройства-Продажа]![Продажа-ПФ]![Поле10]
Пересчет поля в главной форме при изменении или вводе значения в поле подчиненной формы. Пусть имеются основная форма Устройства-Продажа и подчиненная форма Продажа-ПФ для таблиц УСТРОЙСТВА и ПРОДАЖА, между которыми существует связь «один-ко-многим». Требуется пересчитывать поле Количество на складе в основной форме при изменении или вводе данных в поле Количество в подчиненной форме, если поле Количество меньше или равно поля Количество на складе, в противном случае выдать сообщение об ошибке и обеспечить повторный ввод информации. Порядок действий:
отобразить подчиненную форму ПРОДАЖА-ПФ в режиме конструктора;
выделить поле Количество и открыть для него окно свойств (кнопка Свойства на панели инструментов или в контекстном меню пункт Свойства);
в окне свойств перейти во вкладку События, в строке После обновления щелкнуть по кнопке Построитель выражений, выбрать пункт меню Программы и щелкнуть по кнопке ОК; при этом мы попадаем в процедуру обработки события;
набрать следующие операторы
IF FORMS![Устройства-Продажа]![Количество на складе] > [Количество] THEN
FORMS![Устройства-Продажа]![Количество на складе] = FORMS![Устройства-Продажа]![Количество на складе] –
[Количество]
ELSE
[Количество] = NULL
[Дата продажи].SetFocus
[Количество].SetFocus
MsgBox “ Количество больше количества на складе “, vbOKOnly
End If
сохранить процедуру, закрыть окна процедуры, свойств, конструирования формы.