- •Создание простых макросов
- •Что такое макрос?
- •Построитель макросов
- •2.1 Имена макросов
- •2.2 Аргументы
- •2.3 Условия
- •2.4 Макрокоманды
- •2.5 Функции построителя макросов
- •Создание макроса
- •Создание изолированного макроса
- •Новые возможности макросов в ms Access 2007
- •4.2 Запуск макросов Access с помощью сочетаний клавиш
- •4.3 Создание макроса, который запускается при открытии базы данных
- •4.4 Создание внедренного макроса
- •Запуск макроса
- •Создание контекстного меню
- •Контрольные вопросы
- •Контрольное задание
4.3 Создание макроса, который запускается при открытии базы данных
Если каждый раз при запуске базы данных требуется выполнять определенный набор действий, можно создать макрос AutoExec. Например, может потребоваться развернуть окно базы данных, заблокировать область переходов и открыть определенный отчет.
Макрос AutoExec — это просто макрос с именем AutoExec. При открытии базы данных Access этот макрос запускается перед выполнением других макросов или кода VBA.
Создание макроса AutoExec
Вам необходимо создать макрос, который будет открывать главную форму, при каждом открытии базы данных.
ЗАДАНИЕ 6
На вкладке Создание в группе Другие щелкните Макрос. Если эта команда недоступна, щелкните стрелку либо под кнопкой Модуль, либо под кнопкой Модуль класса, а затем щелкните Макрос.
В конструкторе макросов в первой пустой ячейке Макрокоманда выберите ОткрытьФорму. Выставите Аргументы макрокоманды так же как на рисунке 239.
Рисунок 239 – Аргументы макрокоманды
Если не удается найти нужную макрокоманду, убедитесь, что на вкладке Конструктор в разделе Показать или скрыть нажата кнопка Показать все действия. При установке этого флажка список доступных действий расширяется, но он будет содержать некоторые действия, которые могут выполняться, только если база данных признана доверенной.
Нажмите кнопку Сохранить и в диалоговом окне Сохранение введите название макроса AutoExec.
Нажмите кнопку ОК и закройте конструктор макросов. Новый макрос будет выполняться при следующем открытии базы данных.
Закройте базу данных и откройте снова. При открытии базы сразу откроется Главная форма.
Если макрос, содержащий действия, которые должны выполняться при запуске базы данных, уже создан, переименуйте его в AutoExec. Он будет запущен при следующем открытии базы данных.
Чтобы не использовать макрос AutoExec и другие параметры загрузки, удерживайте нажатой клавишу SHIFT во время запуска базы данных.
4.4 Создание внедренного макроса
Внедренные макросы отличаются от изолированных тем, что хранятся в свойствах событий в формах, отчетах или элементах управления. Они не отображаются как объекты в разделе Макросы в области переходов. Это облегчает управление базой данных, поскольку отпадает необходимость отслеживать отдельные макрообъекты, содержащие макросы для формы или отчета. Используйте следующую процедуру для создания внедренного макроса.
В
недренные
макросы нельзя преобразовать в модули
Visual Basic для приложений (VBA) с помощью
инструмента Преобразовать
макросы в
группе Макрос
на вкладке Работа
с базами данных.
Если планируется со временем преобразовать
макрос в модули VBA, постройте изолированный
макрос, а не внедренный. В таком случае
можно будет воспользоваться инструментом
Преобразовать
макросы для
преобразования макросов в VBA.
Внедрение макроса в событие отчета «Отсутствие данных»
Если при запуске отчета в источнике данных отсутствуют записи, отображается пустая страница отчета — то есть страница, на которой отсутствуют данные. Иногда желательно, чтобы вместо пустой страницы отображалось окно сообщения. Идеальным решением в этой ситуации является использование внедренного макроса.
Например, при запуске отчета «Квитанция» у нас используется внутренний фильтр, который выводит окно с параметром. В этом окне, нам необходимо указать код заказа. В результате, по указанному коду нам предоставляется квитанция по конкретному заказу. Если мы укажем в окне с параметром код несуществующего заказа, то будет выведена пустая страница. Именно для того, чтобы эта пустая страница не выводилась можно создать внедренный макрос, который будет выводить сообщение о том, что данных под таким номером не обнаружено.
ЗАДАНИЕ 7
Откройте отчет «Квитанция» в режиме Конструктора или Макета.
Е
сли
страница свойств еще не отображена,
для ее отображения нажмите клавишу F4
или нажмите по значку Страница
свойств.
Откройте вкладку Событие на странице свойств (рисунок 240).
Рисунок 240 – Окно свойств
Выберите событие Отсутствие данных.
Нажмите кнопку
.
В диалоговом окне Построитель (рисунок 241) выделите пункт Макросы и затем нажмите кнопку ОК.
Рисунок 242 – Построитель
Введите макрокоманды и аргументы, как показано на рисунке 243.
Рисунок 243 – Макрокоманды
Обратите внимание, что в предыдущей таблице аргументы представлены в том виде, в каком они отображаются в столбце Аргументы. Фактически они вводятся в разделе Аргументы макрокоманды, как показано на рисунке 244.
Рисунок 244 – Аргументы макрокоманды
Нажмите кнопку Закрыть.
Построитель макросов будет закрыт, а для события Отсутствие данных будет выведено сообщение [Внедренный макрос] (рисунок 245).
Рисунок 245 – Окно свойств
Сохраните и закройте отчет.
Если при следующем запуске отчета записи не будут обнаружены, появится окно сообщения (рисунок 246). При нажатии в этом окне кнопки ОК отчет будет отменен без отображения пустой страницы.
Рисунок 246 – Сообщение об ошибке
ЗАДАНИЕ 8
Создайте аналогичные макросы для отчетов «Список поставщиков», «Список клиентов», «Менеджеры». Для данных отчетов должны быть сделаны условия отбора, аналогичные условию для отчета «Квитанция» (здесь имеются в виду внутренние фильтры отбора записей в отчетах. Например, в отчете «Менеджеры» может быть задан фильтр запрашивающий ввод фамилии конкретного менеджера, в отчете «Список поставщиков» поставщики отбираются по коду поставщика, а в отчете «Список клиентов» клиенты выводятся по коду клиента).
