Макросы данных — это новая функция Access 2010, которая позволяет добавлять логику в события, которые происходят в таблицах (например, добавление, обновление или удаление данных).
Задание: необходимо реализовать частичную автоматизацию отслеживания готовности заказа. Для этого необходимо добавить в таблицу «Заказы» дополнительные поля, создать форму, выводящую соответствующую информацию, а также создать макрос, частично автоматизирующий отслеживание готовности заказа.
1. В таблицу «Заказы» добавьте два поля:
a. «СостояниеЗаказа»: тип - текстовый; использовать подстановку - Список, тип источника строк - Список значений.
b. «ПроцентЗавершения»: тип - числовой; формат поля - длинное целое.
2. Перейдите в режим таблицы, создайте элементы списка поля «СостояниеЗаказа». Для этого кликните по пустой ячейке поля и откройте окно «Изменить элементы списка».
Добавьте элементы «Не начат», «Выполняется», «Завершен»:
3. Сохраните изменения, закройте таблицу.
4. На основании измененной таблицы «Заказы» создайте форму «Состояние_Заказов», включив в нее следующие поля: «КодЗаказа», «ДатаЗаказа», «СостояниеЗаказа», «ПроцентЗавершения».
5. Сохраните изменения, закройте форму.
6. Откройте таблицу «Заказы» в режиме таблицы. Перейдите на вкладку Таблицы, выберите макрос До изменения. Откроется окно макросов.
7. Выберите команду условия Если в каталоге макросов, раздел Управление. Введите критерий и его значение:
8. Выберите макрокоманду ЗадатьПоле и добавьте ее в блок Если. Введите следующие аргументы:
Далее необходимо добавить команду, присваивающую полю «ПроцентЗавершения» значение ноль при задании значения «Не начато» поля Состояние. Для этого добавьте оператор Иначе Если к оператору Если (для этого сначала выберите оператор Если, а затем щелкните на команде Иначе Если). Добавьте аргументы команды:
9. Затем добавьте команду ЗадатьПоле:
10. Сохраните изменения. Проверьте корректность работы макроса в таблице и в форме.