Автоматическая
подстановка значения в поле ввода
Частсг для
заполнения некоторых полей таблиц требуется вычислить выражение на основе данных
в других полях этой таблицы и, возможно, связанных с ней таблиц. Чтобы при вводе
данных не вычислять это значение каждый раз самостоятельно, требуется создать
форму для ввода данных, выполняющую необходимые вычисления автоматически. Это
позволит застраховаться от ошибок при вычислениях и сократит время ввода данных.
Представим
себе такой пример. Есть таблица "Товары" со списком товаров, где для
каждого товара указана его цена (таблица содержит поля "НаименованиеТовара"
и "Цена", и первое поле является ключевым). Есть другая таблица "Заказы"
со списком заказов на эти товары, содержащая информацию о типе и количестве
заказанного товара (поля "НаименованиеТовара" и "Количество"),
а также о его стоимости (поле "Сумма"). Таблица "Заказы"
связана с таблицей "Товары" по полю "НаименованиеТовара"
отношением "один-ко-многим". Требуется создать форму для добавления
новых заказов так, чтобы при выборе необходимого товара из предложенного списка
и после ввода заказанного количества в поле "Сумма" автоматически
подставлялось значение стоимости всего заказа для данного товара.
Для решения
поставленной задачи требуется выполнить следующие действия:[
Реализация этого
примера — небольшая база данных Заказы.mdb — есть на компакт-диске, который
является дополнительным приложением к комплекту книг о Microsoft Office 2002
издательства "БХВ-Петербург" и распространяется отдельно.
]
-
Создайте запрос, содержащий
поле "Цена" из таблицы "Товары" и все поля из таблицы
"Заказы". Сохраните его с именем "Заказано".
-
Создайте форму "Заказы"
на основе запроса "Заказано".
-
Поместите в форму элемент
управления
Список,
связанный с полем "НаименованиеТовара"
источника данных формы.
Замечание
Это можно выполнить
с помощью окна
Список полей
(Filed List) (см. гл. 5), предварительно
указав в режиме Конструктора таблицы "Заказы" для поля "НаименованиеТовара"
на вкладке
Подстановка
(Lookup) значение
Поле со списком
(Combo
Box) для свойства
Тип элемента управления
(Display Control) и имя таблицы
"Товары" в качестве значения свойства
Источник,строк
(Row
Source).
-
Поместите в форму текстовые
поля, связанные с полями "Количество" и "Сумма" источника
данных формы.
-
Для поля "Количество"
в окне свойств раскройте вкладку
События
(Events). Для события
После
обновления
(After Update) создайте процедуру обработки события
(см.
разд. "Динамическая фильтрация данных" этой главы)
со следующим
содержанием:
Private Sub Количество_А£terUpdate()
Сумма = Цена * Количество
End Sub
Таким образом,
после ввода значения в поле "Количество" в поле "Сумма"
будет автоматически подставлена вычисленная стоимость заказа. А поскольку поле
"Сумма" является присоединенным к одноименному полю в таблице "Заказы",
вычисленное значение автоматически попадет в таблицу.
Совет
Не всегда вычисляемые
значения требуется сохранять в самих таблицах. Чаще всего достаточно только
отобразить результат вычисления в вычисляемом поле формы или запроса для информирования
пользователя. Ведь это значение можно вычислить в любой момент на основе данных,
хранящихся в таблицах, и не потребуется выполнять проверку на правильность
сохраненного значения при изменении значений полей, использованных в его вычислении,
в других формах или непосредственно в таблице (см. также разд. "Создание
вычисляемых полей" данной главы и разд. "Вычисления на выделенных
данных таблицы" гл. 8).
Содержание раздела