Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы Данных

.pdf
Скачиваний:
162
Добавлен:
04.06.2015
Размер:
5.09 Mб
Скачать

5. Создание и использование макросов

СОЗДАНИЕ ИЗОЛИРОВАННОГО МАКРОСА

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

1.Вызвать Построитель макросов.

2.В столбец Условие ввести условие (если оно имеется), при выполнении которого должна запускаться макрокоманда.

3.В столбце Макрокоманда щелкнуть стрелку, чтобы раскрылся список макрокоманд, и выбрать из него нужную макрокоманду. В области Аргументы макрокоманды указать значения аргументов макрокоманды.

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

5.Указать имя макроса. Оно задается в специальном окне, которое появляется на экране после нажатия команды Сохранить.

Всякий изолированный макрос может быть преобразован в модуль VBA. Такое действие может быть реализовано с помощью команды Пре-

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

СОЗДАНИЕ ГРУППЫ МАКРОСОВ

Объединить несколько макросов в группу можно так.

1.Вызвать Построитель макросов.

2.Щелкнуть команду Имена макросов на вкладке Конструктор в

группе Показать или скрыть.

3.Указать имя перового макроса в столбце Имя макроса пустой строки бланка построителя макросов. Добавить в макрос макрокоманды. Имя макроса задается только для первой макрокоманды макроса.

4.Действия шага 3 повторить для всякого другого макроса, входящего в группу.

5.Сохранить группу макросов, указав ее имя.

После этого имя группы появится в области переходов (только имя группы, а не отдельных макросов группы).

200

5. Создание и использование макросов

ЗАПУСК ИЗОЛИРОВАННОГО МАКРОСА

Изолированный макрос можно запустить несколькими способами:

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

непосредственно из Построителя макросов. Достаточно щелкнуть команду Выполнить, находящуюся в группе Сервис вклад-

ки Конструктор;

с помощью команды Выполнить макрос, расположенной на вкладке Работа с базами данных;

из группы макросов. На вкладке Работа с базами данных в группе

Сервис щелкнуть команду Выполнить макрос. В окне Запуск макроса указать имя. Если задать имя группы, то будет выполнен только первый макрос группы. Если задать имя макроса группы в префиксной форме ИмяГруппыМакросов.ИмяМакроса, то будет исполнен указанный макрос группы;

из другого макроса, в котором имеется макрокоманда ЗапускМакроса, аргументом которой выступает имя вызываемого макроса. Макрокоманда ЗапускМакроса позволяет запускать макрос при выполнении определенного условия либо фиксированное число раз;

в ответ на событие, связанное с формой или отчетом.

Примечание. Помимо этого, для запуска макроса можно использовать элементы управления. Чаще всего для этих целей используются кнопки. Например, добавив кнопку в форму, можно связать ее с макросом и инициировать запуск макроса, щелкая по кнопке (ведь щелчок по кнопке – это событие, связанное с кнопкой). Для создания такой кнопки лучше всего использовать Мастер кнопок. Выбор в Мастере кнопок команды Выпол-

нить макрос из категории Разное приводит к тому, что макрос привязывается к созданной кнопке.

201

5. Создание и использование макросов

РЕЖИМ ОТЛАДКИ МАКРОСА

Создание макроса похоже на написание простой компьютерной программы. Учитывая, что немногие программы начинают работать правильно сразу же после создания, макросы, как и программы, нуждаются в отладке. Проще всего это сделать так: запустить макрос и посмотреть результаты. Различные макросы запускаются по-разному. Однако любой макрос можно запустить из Построителя макросов. Если макрос ведет себя не так, как ожидалось, то следует использовать средства отладки. В Access одним из средств отладки является пошаговое выполнение макроса.

Для перехода в это режим необходимо открыть Построитель макросов и в группе Сервис вкладки Конструктор активизировать кнопку По шагам. Затем щелкнуть команду Выполнить. После этого все запускаемые макросы будут выполняться по шагам.

В режиме пошагового выполнения макроса происходит поочередное исполнение каждой макрокоманды. После завершения каждой макрокоманды открывается диалоговое окно Пошаговое исполнение макроса. В этом окне представлены следующие параметры макроса:

имя макроса – имя тестируемого макроса;

условие – результат выполнения логического выражения, заданного в столбце Условие;

макрокоманда – следующая макрокоманда в макросе;

аргументы – содержимое области аргументов макрокоманды.

Кроме того, диалоговое окно Пошаговое исполнение макроса содержит три кнопки. Для перехода к следующей макрокоманде необходимо нажать кнопку Шаг. Если щелкнуть кнопку Остановить все макросы, то исполнение макроса будет прекращено.

Чтобы выйти из пошагового режима и выполнить все остальные макрокоманды без остановок, надо нажать кнопку Продолжить. Отключить режим пошагового выполнения можно также через кнопку По шагам на вкладке Конструктор. Но это возможно только по завершении работы макроса.

202

5. Создание и использование макросов

СВЯЗЫВАНИЕ ИЗОЛИРОВАННОГО МАКРОСА С СОБЫТИЕМ

Событие – любое действие, выполняемое в базе данных (щелчок мыши, нажатие кнопки, открытие формы или отчета и т.п.). Чтобы указать событие, запускающее макрос, необходимо воспользоваться Окном свойств объекта. В табл. 5.3 представлены события, с которыми обычно связывают макросы.

Назначить макрос событию можно следующим образом.

1.Создать изолированный макрос.

2.Открыть Окно свойств формы (отчета).

3.Открыть вкладку События для объекта, в который надо внедрить макрос. Таким объектом может быть форма (отчет) в целом, их раздел или отдельный элемент управления.

4.Выбрать событие, при наступлении которого будет запускаться

макрос.

5.Выбрать имя макроса в раскрывающемся списке. Примечательно, что в этом списке приводятся все макросы, включая те, которые входят в группы.

6.Форму (отчет) сохранить и закрыть.

 

Таблица 5.3

 

 

Событие

Поведение макроса

 

 

Открытие

Выполняет действия при открытии объекта

 

 

Текущая запись

Выполняет действия при выделении текущей записи

 

 

Закрытие

Выполняет действия при закрытии объекта

 

 

Нажатие кнопки

Выполняет действия при щелчке левой кнопкой мыши

 

по телу объекта

 

 

Двойное нажатие кнопки

Выполняет действия при двойном щелчке левой кноп-

 

кой мыши по телу объекта

 

 

До обновления

Выполняет действия перед обновлением объекта

 

 

После обновления

Выполняет действия после обновлением объекта

 

 

Отсутствие данных

Выполняет действия, если источник записей пустой (не

 

имеет данных)

 

 

203

5. Создание и использование макросов

Ограничение. Вкладка События в Окне свойств имеется всего лишь у форм и отчетов. Поэтому макросы можно связывать только с событиями, которые возникают при работе с формами, отчетами, их разделами и элементами управления (присоединенными, свободными и вычисляемыми).

СОЗДАНИЕ ВНЕДРЕННОГО МАКРОСА

Внедренные макросы отличаются от изолированных тем, что хранятся в формах, отчетах и элементов управления, в которых были созданы. Они не имеют имени и не отображаются в области переходов, т.к. не являются самостоятельными объектами базы данных. Использование внедренных макросов позволяет сократить число объектов, отображаемых в области переходов, и тем самым облегчает процесс управление базой данных. Для создания внедренного макроса требуется выполнить следующие действия.

1.Открыть в форму (отчет) в Режиме макета или Конструкторе форм (Конструкторе отчетов).

2.Открыть Окно свойств формы (отчета).

3.Открыть вкладку События для объекта, в который надо внедрить макрос. Подобным объектом может быть форма (отчет) в целом, их раздел или отдельный элемента управления.

4.Выбрать событие, которое будет запускать макрос, и щелкнуть кнопку «…».

5.В диалоговом окне Построитель выделить пункт Макросы и нажать кнопку Ok. Откроется Построитель макросов.

6.Создать макрос.

7.На вкладке Конструктор в группе Закрыть щелкнуть команду

Сохранить как, а затем команду Закрыть. Построитель макросов закро-

ется, а в строке соответствующего события будет отображено значение

[Внедренный макрос].

8.Форму (отчет) сохранить и закрыть.

Внедренные макросы удобно применять, например, при наступлении таких событий как отсутствие данных в отчете, нарушение целостности

204

5. Создание и использование макросов

данных, вводимых в поля форм, т.е. мелких событий, информирующих пользователя о состоянии объекта базы данных, с которым он работает. Поскольку подобных событий возможно много, то макросы, их обрабатывающие, целесообразно внедрять в соответствующие объекты базы данных и не загромождать ими область переходов. Однако типовые последовательности действий, многократно повторяющиеся применительно к различным объектам базы данных, разумно оформлять в виде изолированных макросов. Такие конструкторские решения диктует принцип модульного программирования!

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

СОЗДАНИЕ МАКРОСА AutoKeys

Макрос AutoKeys предназначен для описания специальной группы макросов группы, всякий макрос которой запускается с помощью некоторого сочетания клавиш. Макрос AutoKeys изолированный, поскольку его имя отображается в области переходов. Имя AutoKeys – имя группы макросов. Имя макроса, входящего в данную группу, задается сочетанием клавиш. В табл. 5.4 указаны обозначения, применяемые при назначении сочетания клавиш макросам из группы AutoKeys.

 

 

Таблица 5.4

 

 

 

Синтаксис имени макроса

Описание

Пример

из группы AutoKeys

 

 

 

 

 

^буква или ^цифра

Ctrl + одна буква или одна цифра

^А или ^2

 

 

 

{F*}

Любая функциональная клавиша

{F5}

 

 

 

^{F*}

Ctrl + любая функциональная клавиша

^{F5}

 

 

 

+{F*}

Shift + любая функциональная клавиша

+{F5}

 

 

 

205

5. Создание и использование макросов

Предостережение. При выборе набора клавиш для вызова макроса надо помнить, что новое назначение заменит стандартное назначение Access. Лучше всего не нарушать стандартных соглашений. Некоторые из стандартных назначений представлены в табл. 5.5.

Таблица 5.5

Сочетание клавиш

Выполняемое действие

 

 

Ctrl + N

Открытие новой базы данных

 

 

Ctrl + P

Печать текущего или выделенного объекта

 

 

Ctrl + S

Сохранение текущего или выделенного объекта

 

 

Ctrl + A

Выделить все

 

 

Ctrl + C

Копирование выделенного текста в буфер обмена

 

 

Ctrl + X

Вырезание выделенного фрагмента с копированием в бу-

 

фер обмена

 

 

Ctrl + V

Вставка содержимого буфера обмена в позицию курсора

 

 

F1

Открытие окна справки

 

 

F7

Вызов диалогового окна Построитель в Конструкторе

 

форм и Конструкторе отчетов

 

 

F11

Отображение или скрытие области переходов

 

 

F12

Открытие диалогового окна Сохранение

 

 

F4 или Alt + Enter

Открытие Окна свойств

 

 

Для создания макроса AutoKeys требуется выполнить действия.

1.Вызвать Построитель макросов.

2.На вкладке Конструктор в группе Показать или скрыть щелкнуть команду Имена макросов.

206

5.Создание и использование макросов

3.В столбце Имя макроса ввести сочетание клавиш, которое требуется для запуска макроса. После этого ввести первую макрокоманду макроса, в следующей строке – вторую макрокоманду и т.д.

4.Перейти к следующей пустой строке и в столбце Имя макроса задать сочетание клавиш для очередного макроса. Добавить макрокоманды.

5.Действия шага 4 повторить для каждого макроса, входящего в Au-

toKeys.

6.Сохранить группу макросов под именем AutoKeys.

После этого имя AutoKeys появится в области переходов (только имя группы, а не отдельных макросов группы). Если нажать подобающие клавиши, то запускается отдельный макрос из группы AutoKeys. Если запустить AutoKeys прямо из области переходов или с помощью команд Выполнить, Выполнить макрос, то это будет иметь те же последствия, что и для любой другой группы макросов (будет выполнен только первый макрос из группы).

СОЗДАНИЕ МАКРОСА AutoExec

Часто при всяком запуске базы данных требуется выполнять определенный набор действий. В этом случае целесообразно создать макрос AutoExec. Например, в этом макросе можно потребовать развернуть окно кнопочной формы, заблокировать область переходов.

Макрос AutoExec – это просто изолированный макрос с фиксированным именем AutoExec. При открытии базы данных Access автоматически запускает макрос с таким именем перед выполнением всех других макросов и модулей. Создается макрос AutoExec точно также как и любой другой изолированный макрос.

Рекомендация. Чтобы заблокировать работу макроса AutoExec, нужно при открытии базы данных удерживать клавишу Shift. Данная клавиша является той «волшебной палочкой», которая позволяет обойти многие преграды (меры безопасности), устанавливаемые разработчиками баз данных с помощью параметров Access и макроса AutoExec!

207

5. Создание и использование макросов

ПРИМЕНЕНИЕ МАКРОСОВ В КОНТЕКСТНЫХ МЕНЮ

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

Шаг 1. Формирование группы, каждый макрос которой играет роль отдельной команды меню.

Шаг 2. Построение макроса, оформляющего группу макросов в контекстное меню.

Шаг 3. Присоединение контекстного меню к элементу управления, форме или отчету. Либо объявление этого меню в качестве глобального контекстного меню (для всех объектов базы данных).

На шаге 1 вначале требуется вызвать Построитель макросов и отобразить столбец Имя макроса. Затем для каждой команды, которую нужно добавить в контекстное меню, выполнить следующие действия:

в столбце Имя макроса ввести текст, который должен служить именем команды контекстного меню. Например, «Сохранить», «Печать», «Закрыть». По умолчанию выбор команды контекстного меню осуществляется кнопкой мыши. Однако для выбора команды можно дополнительно назначить клавишу. С этой целью перед первой буквой имени макроса (имени команды меню) поставить знак амперсанта «&». В результате первая буква имени макроса будет определять клавишу доступа к команде (в отображаемом на экране контекстном меню эта буква станет подчеркнутой);

в столбце Макрокоманда указать первое действие, которое должно выполняться при выборе команды в контекстном меню. В последующих строках задать другие действия (если они имеются).

Вкачестве разделителя команд (т.е. макросов в группе) следует использовать пустую строку, в которой столбец Имя макроса содержит символ де-

фиса « ». Группу макросов нужно сохранить, например, под именем Ко-

мандыМеню.

208

5. Создание и использование макросов

На шаге 2 требуется построить макрос, который группу макросов КомандыМеню преобразует в меню. Для этого следует

вновь вызвать Построитель макросов;

выбрать макрокоманду Добавить меню;

в области Аргументы макрокоманды в поле Имя макроса указать

КомандыМеню;

сохранить макрос, например, под именем МенюДляОбъекта.

Если контекстное меню надо присоединить к элементу управления, форме или отчету, то на шаге 3 надлежит

открыть в форму (отчет) в Конструкторе форм (Конструкторе отчетов). Отобразить Окно свойств объекта целиком или некоторого его элемента управления;

на вкладке Другие страницы свойств в поле Контекстное меню ввести имя макроса, построенного на шаге 2.

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

Если сформированное меню необходимо объявить в качестве глобального контекстного меню, то на шаге 3 следует

нажать кнопку Microsoft Office, щелкнуть команду Параметры

Access;

в диалоговом окне Параметры Access выбрать категорию Теку-

щая база данных;

в группе Параметры ленты и панелей инструментов в поле Кон-

текстное меню указать имя макроса, созданного на шаге 2.

Предостережение. Надо помнить, что образованное таким образом глобальное контекстное меню заменит все контекстные меню Access.

209