Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пос_БД_SQL_Server_Access.doc
Скачиваний:
9
Добавлен:
01.03.2025
Размер:
2.41 Mб
Скачать

6.8. Создание кнопки запуска макроса в форме

Можно предусмотреть запуск макроса пользователем из формы путем нажатия кнопки. Кнопка должна быть связана с макросом. Для этого в свойствах кнопки на вкладке События в строке Нажатие кнопки задается имя макроса.

Создание кнопки запуска макроса с помощью мыши. Для создания кнопки запуска макроса надо в окне базы данных выбрать вкладку Макрос и перетащить макрос, который необходимо запустить при нажатии кнопки, из окна базы данных в форму, открытую в режиме конструктора. В форму будет помещена кнопка, связанная с данным макросом. Кнопка будет иметь подпись, соответствующую имени макроса.

Если в макросе содержится группа макросов, при использовании этого метода запускается только первый макрос из группы и нельзя запустить другой макрос, входящий в группу. Для создания кнопки, запускающей конкретный макрос из группы макросов, необходимо, находясь в форме в режиме конструктора, установить курсор мыши на кнопку и вызвать ее свойства. В свойствах на вкладке События в строке Нажатие кнопки надо ввести имя макроса группы.

Создание кнопки запуска макроса мастером. Кнопка для запуска макроса может быть создана в форме с помощью мастера. Для этого надо нажать на панели элементов кнопку Мастера, а затем дважды щелкнуть по элементу Кнопка. После вычерчивания кнопки в форме открывается диалоговое окно Создание кнопок, в котором надо выбрать категорию Разное и действие Выполнить макрос. Затем выбирают из списка имя макроса, который будет запускаться при нажатии кнопки. Мастер позволяет выбрать рисунок или задать текст подписи на кнопке, ввести имя кнопки запуска макроса.

6.9. Пример создания макроса для решения задачи, использующей запросы

Пусть необходимо рассчитать количество студентов в группах и ввести эти данные в поле КС в таблице ГРУППЫ. Подсчет количества студентов реализовать в запросе Число студентов в группе. Обновление поля КС на основе полученных в этом запросе данных выполнить с помощью запроса Обновление ГРУППЫ_КС. Последовательное выполнение этих запросов решает поставленную задачу.

Решение задачи разбивается на ряд этапов.

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)

Нет

Восстановить окно, свернутое перед решением задачи

После ввода всех макрокоманд сохраняют макрос, используя кнопку Сохранить на панели инструментов.

Для выполнения макроса нажимают кнопку Запуск на панели инструментов.