Пусть необходимо рассчитать количество студентов в группах и ввести эти данные в поле КС в таблице ГРУППЫ. Подсчет количества студентов реализовать в запросе Число студентов в группе. Обновление поля КС на основе полученных в этом запросе данных выполнить с помощью запроса Обновление ГРУППЫ_КС. Последовательное выполнение этих запросов решает поставленную задачу.
Решение задачи разбивается на ряд этапов.
1 этап. Создать запрос Число студентов в группе. Исходной таблицей является таблица СТУДЕНТЫ, в запрос включаются поля ШГ и НС. Запрос является запросом с групповыми вычислениями, по полю НС осуществляется подсчет количества студентов в группе. Затем данный запрос преобразуется в запрос на создание новой таблицы. Имя новой таблицы ЧИСЛО СТУДЕНТОВ.
2 этап. Создать запрос Обновление ГРУППЫ_КС.В данном запросе поле КС в таблице СТУДЕНТЫ заменяется на расчетное поле из таблицы ЧИСЛО СТУДЕНТОВ.
3 этап. Создать макрос, который последовательно выполнит эти запросы. Кроме того, включить в него макрокоманды, автоматизирующие действия пользователя по управлению объектами на экране при решении задачи и, в частности, действия, обеспечивающие отображение результатов решения задачи на экране в удобном для пользователя виде. Назначение макрокоманд в порядке их выполнения в макросе представлено в табл. 6.3.
Таблица 6.3
Макрос, работающий с запросами
Макрокоманда
Аргументы
Пояснения
Свернуть (Minimize)
Нет
Свертывается окно, которое было активным в момент запуска макроса на выполнение (например, окно базы данных).
ВыводНаЭкран (Echo)
Включить вывод: Нет
Не отображаются на экране открываемые в следующих макрокомандах таблицы до изменения их местоположения и размера.
ОткрытьТаблицу (OpenTable)
Имя таблицы: ГРУППЫ
Открывается таблица ГРУППЫ. Имя таблицы и режим ее открытия указываются аргументами макрокоманды. Открытая таблица ГРУППЫ будет отображаться на экране до выполнения команды ее закрытия.
СдвигРазмер (MoveSize)
По правому краю: 2
От верхнего края: 2
Ширина: 18
Высота: 5
Позволяет задать размер местоположение окна активного объекта. Выполнение макрокоманды после открытия таблицы изменяет параметры окна таблицы.
Продолжение табл. 6.3
УстановитьСообщения (SetWarnings)
Включить сообщения: Нет
Отключает вывод на экран окон сообщений с предупреждениями на время выполнения макроса
ОткрытьЗап-рос (OpenQuery)
Имя запроса: Число студентов в группе
Выполняет запрос Число студентов в группе.
ОткрытьТаблицу (OpenTable)
Имя таблицы: ЧИСЛО СТУДЕНТОВ
Открывает таблицу ЧИСЛО СТУДЕНТОВ, созданную в запросе Число студентов в группе.
СдвигРазмер (MoveSize)
По правому краю: 2
От верхнего края: 8
Ширина: 15
Высота: 5
Установка местоположения и размеров окна открытой таблицы.
ВыводНаЭк-ран (Echo)
Включить сообщение: Да
Восстанавливает отображение на экране таблиц, открытых в предыдущих макрокомандах.
ОткрытьЗап-рос (OpenQuery)
Имя запроса: Обновление ГРУППЫ_КС
Выполняет запрос Обновление ГРУППЫ_КС. Результаты выполнения запроса по обновлению поля КС отображаются в выведенной на экран таблице ГРУППЫ.
Окончание табл. 6.3
Сообщение (MsgBox)
Сообщение: таблица ГРУППЫ обновлена
Сигнал: Да
Тип: информационный
Заголовок: Работа макроса завершена
Выдает сообщение, указанное в аргументах макрокоманды
Закрыть (Close)
Тип объекта: таблица
Имя объекта: ГРУППЫ
Закрыть таблицу ГРУППЫ
Закрыть (Close)
Тип объекта: таблица
Имя объекта: ЧИСЛО СТУДЕНТОВ
Закрыть таблицу ЧИСЛО СТУДЕНТОВ
Восстановить (Restore)
Нет
Восстановить окно, свернутое перед решением задачи
После ввода всех макрокоманд сохраняют макрос, используя кнопку Сохранить на панели инструментов.
Для выполнения макроса нажимают кнопку Запуск на панели инструментов.