Основы создания макросов

Язык макросов является языком программирования, который позволяет реализовать задачи пользователя, выполняя необходимые действия над объектами Access и их элементами.

Макрос – это программа, состоящая из последовательности макрокоманд. Макрокоманда – это инструкция, ориентированная на выполнение определенного действия.

Макрокомандой можно, например, открыть форму, отчет, напечатать отчет, запустить на выполнение запрос, присвоить значение полю, создать меню для формы или отчета. Имеющийся в Access набор команд (более 40) реализует практически любые действия, которые необходимы для решения задач.

Макросы, являясь надстройкой над VBA, обеспечивают пользователя средствами решения задач, не требующими знания программирования на Visual Basic for Application. Язык макросов является языком более высокого уровня, чем VBA.

Конструирование макроса. Создание макросов осуществляется в диалоговом режиме и сводится к записи в окне макроса последовательности макрокоманд, для которых задаются параметры. Каждому макросу присваивается имя (рис. 29).

Рис. 29. Окно макроса

Макрокоманды применяется к объекту, указанному в аргументах макрокоманд. Имеется возможность задать условия выполнения макроса.

Создание макроса начинается в окне базы данных на вкладке Макросы кнопкой Создать. В окне конструктора макрокоманды вводятся в столбец Макрокоманда путем выбора из списка имеющихся команд. Аргументы макрокоманды вводятся в нижней части окна. Хорошим тоном считается ввод необязательных комментарием в столбце Примечания.

При выполнении макрос макрокоманды выполняются последовательно в порядке их расположения.

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

Создание группы макросов. Группа макросов создается как один макрос, в котором содержатся несколько поименованных макросов, например, связанных с решением одной задачи. Работать с группой удобнее, чем с несколькими отдельными макросами.

Для создания группы нужно в режиме конструктора выполнить команду Вид/Имена макросов и в появившемся столбце ввести имя первого макроса, а затем записать его макрокоманды. Аналогичным образом вводятся следующие макросы, входящие в группу. Имя, указанное при сохранении такой группы, будет являться именем группы, и будет отображаться в окне базы данных. Ссылка на макрос, входящий в группу, имеет вид:

<ИмяГруппыМакросов>.<ИмяМакроса>.

Вызов макроса из другого макроса. Пользователь имеет возможность вызывать выполнение макроса из другого макроса. Вызов макроса осуществляется макрокомандой командой ЗапускМакроса. Аргументы макрокоманды Число повторов и Условие повтора позволяют реализовать циклы в программах на языке макросов.

Макрокоманды исходного макроса выполняются поочередно, пока не наступит очередь макрокоманды ЗапускМакроса. В этот момент происходит вызов второго макроса, по завершению выполнения которого возобновляется выполнение команд исходного макроса. Допускается выполнение макрокоманды ЗапускМакроса из вызванного макроса, например, вызов макроса «В» из макроса «А», макроса «С» из макроса «В» и т.д.

Использование условий в макросе. В языке макросов можно организовать выполнение макрокоманды только при выполнении некоторых условий. Условия позволяют определить порядок передачи управления между макрокомандами в макросе.

Условие вводится в строку макрокоманды в столбце Условие, вызываемом командой Вид/Условия и задается с помощью логического выражения, например:

ОЦЕНКА = 2;

[Дата рождения] Between #2-фев-85# And #2-мар-85#;

[Дисциплина] = «Информатика» And [Результат] = 5.

Для следующей макрокоманды, которая должна выполняться при выполнении условия, в строке Условие ставится многоточие.

Если условие не выполняется, то выполняется команда с пустой ячейкой условия или макрокоманда с новым условием (рис. 30).

Рис. 30. Задание условий выполнения макрокоманд

Формирование ссылок на объекты в макросах. Ссылка на объект включает имя семейства и отделенное от него восклицательным знаком имя объекта. Если имя объекта включает пробелы, его следует заключать в квадратные скобки. В Access все таблицы объединены в семейство Tables (Таблицы), формы – в семейство Forms, отчеты – в семейство Reports. Пример ссылки на форму:

Forms![Дисциплина].

В ссылке на свойство объекта вслед за именем через точку записывается имя свойства на английском языке. Перечень свойств объекта можно увидеть в окне свойств в режиме конструктора.

Пример ссылки на свойство Полосы прокрутки формы Дисциплина:

Forms![Дисциплина].ScrollBars

В ссылке на элемент управления объекта вслед за именем объекта через восклицательный знак записывается имя элемента управления, заключенное в квадратные скобки. Пример ссылки на поле Часов в форме Дисциплина на поле с именем Группа:

Forms![Дисциплина]![Группа].

Имя элемента управления можно просмотреть в окне свойств на вкладке Другие.

Чтобы сослаться на свойство элемента управления, следует дополнить ссылку на элемент управления через точку именем свойства. Пример ссылки на свойство Вывод на экран надписи Группа формы Дисциплина:

Forms![Дисциплина]![Группа_Надпись].Visible.

Ссылка на подчиненную форму или отчет записывается как ссылка на элемент управления формы (отчета), включающей данную форму:

Forms![Список_группы]![Список_студентов]

Полная ссылка на элемент управления в подчиненной форме имеет в общем виде структуру:

Form![Имя формы]![Подчиненная форма].Form![Элемент подчиненной формы]. Имя_свойства

При ссылках на элементы управления в текущей форме или отчете можно не указывать имя формы (отчета).

Организация выполнения макросов. Запуск макроса из окна конструктора или окна базы данных осуществляется кнопкой Запуск с изображением восклицательного знака.

Для запуска макроса из любого окна Access выбирается команда Сервис/Макросы.

Автоматический запуск макроса при открытии базы данных организуется путем присвоения макросу имени AutoExec.

Для запуска макроса при возникновении некоторого события, необходимо указать имя макроса в окне свойств объекта (формы или отчета) в сроке соответствующего события.

Примеры событий формы:

«До вставки» - наступает при вводе пользователем первого символа в новую запись.

«После вставки» - наступает после добавления новой записи в базу данных.

«Текущая запись» - наступает, когда запись получает фокус.

«Выгрузка», затем «Отключение», затем «Закрытие» - наступает при закрытии формы.

Примеры событий элемента формы:

«Выход» а затем «Потеря фокуса» - наступает, когда пользователь переводит курсор с текущего на другой элемент управления.

«Вход» а затем «Получение фокуса» - наступает для элемента управления, на который переводится курсор.

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

Пример использования макросов для решения задач. Макрос Расчет числа студентов групп рассчитывает количество студентов в группах и вносит эти данные в поле Количество таблицы Группы.

Подсчет количества студентов реализован запросом СозданиеЧислоСтудентов, который создает таблицу Число студентов с результатами расчета количества студентов в группах.

Обновление поля Количество в таблице Группа выполняет запрос ОбновлениеГруппаКоличество.

Макрос в режиме конструктора приведен на (рис. 31). Назначение макрокоманд:

Ø Макрокоманда «Свернуть» позволяет свернуть окно, которое было активным на момент запуска макроса.

Ø Макрокоманда «Вывод на экран» со значением Нет аргумента Включить вывод позволяет не отображать на экране открываемые объекты.

Ø Макрокоманда «Установить сообщения» отключает вывод на экран окон сообщений на время выполнения макроса.

Ø Макрокоманда «Открыть запрос» выполняет запрос СозданиеЧислоСтудентов на создание таблицы ЧислоСтудентов. Имя запроса указыватся в аргументах макрокоманды.

Ø Макрокоманда «Открыть таблицу» открывает таблицу ЧислоСтудентов, созданную запросом. Имя таблицы и режим открытия указываются в аргументах.

Ø Макрокоманда «СдвигРазмер» позволяет задать размер и местоположение окна активного объекта – таблицы ЧислоСтудентов.

Ø Макрокоманда «ОкрытьЗапрос» выполняет запрос ОбновлениеГруппаКоличество.

Ø Макрокоманды «ОткрытьТаблицу» и «СдвигРазмер» открывают таблицу Группы и задают ее месторасположение и размер.

Ø Макрокоманда «ВыводНаЭкран» восстанавливает отображение на экране таблиц, открытых в предыдущих макрокомандах.

Ø Макрокоманда «Сообщение» выдает сообщение «Таблица «Группы» обновлена», указанное в аргументах макрокоманды.

Ø Макрокоманды «Закрыть» закрывают таблицы Группа и ЧислоСтудентов.

Ø Макрокоманда «Восстановить» восстанавливает окно, свернутое перед решением задачи.

Рис. 31. Макрос Расчет числа студентов групп в режиме конструктора

Для использования макроса в форме произведем следующие действия. Скопируем макрос в окне базы данных и сохраним его под именем КнопкаОбновитьФормыСписокГруппы. Добавим перед макрокомандой «Восстановить» макрокоманду «ВыделитьОбъект», чтобы сделать активной форму Список_группы перед восстановлением.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: