Методичка Microsoft Office Access 2007 (538738), страница 11
Текст из файла (страница 11)
Группа макросов создается для объединения нескольких связанных макросов в один объект макроса.
-
На вкладке Создание в группе Другие щелкните Макрос. Если эта команда недоступна, щелкните стрелку либо под кнопкой Модуль, либо под кнопкой Модуль класса, а затем щелкните Макрос.
Откроется построитель макросов.
-
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Имена макросов
, если она еще не была нажата.
В построителе макросов будет отображен столбец Имя макроса.
Примечание. Имена макросов необходимы в группах макросов для того, чтобы отличать отдельные макросы друг от друга. Имя макроса появляется в той же строке, где и первая макрокоманда. Столбец имени макроса остается пустым для любых следующих макрокоманд в макросе. Макрос заканчивается там, где появляется имя следующего макроса.
-
В столбце Имя макроса введите имя первого макроса из группы.
-
Введите макрокоманды, выполняемые в первом макросе:
-
В столбце Макрокоманда щелкните стрелку, чтобы раскрыть список макрокоманд.
-
Выберите имя макрокоманды.
-
В разделе Аргументы макрокоманды при необходимости укажите аргументы для макрокоманды.
-
Чтобы увидеть краткое описание каждого аргумента, щелкните поле аргумента и прочитайте описание, находящееся справа от аргумента.
Советы
-
Для аргумента макрокоманды, значение которого является названием объекта базы данных, эти значения можно задавать путем перетаскивания объекта из области переходов в поле аргумента макрокоманды Имя объекта.
-
Можно создать макрокоманду, перетаскивая объект базы данных из области переходов в любую пустую строку построителя макросов. При перетаскивании в построитель макросов таблицы, запроса, формы, отчета или модуля Access добавляет макрокоманду, открывающую таблицу, запрос, форму или отчет. При перетаскивании макроса добавляется макрокоманда, запускающая макрос.
-
Можно дополнительно ввести текст описания для макрокоманды.
-
Перейдите к следующей пустой строке и в столбце Имя макроса введите имя следующего макроса.
-
Введите макрокоманды, выполняемые в макросе.
-
Повторите шаги 5 и 6 для каждого макроса группы макросов.
На приведенной ниже иллюстрации показана небольшая группа макросов, содержащая два макроса. Имена этих макросов отображаются в столбце Имя макроса. Каждый макрос содержит две макрокоманды.
Примечания
Имя, указанное при сохранении группы макросов, будет служить именем группы макросов. В приведенном выше примере группа макроса называется «Macro3». Имя выводится в группе Макрос в области переходов. Для ссылок на макросы, входящие в группу макросов, используется следующий синтаксис:
ИмяГруппыМакросов.ИмяМакроса
Например, в приведенном выше примере выражение Macro3.FoundMsg является ссылкой на второй макрос группы.
Если группа макросов запускается двойным щелчком в области переходов или нажатием кнопки Выполнить в группе Сервис вкладки Конструктор, в приложении Microsoft Access выполняется только первый макрос группы и процесс останавливается по достижении имени второго макроса.
Создание внедренного макроса
Внедренные макросы отличаются от изолированных макросов тем, что они хранятся в свойствах событий форм, отчетов, элементов управления. Они не отображаются в виде объектов в группе Макрос в области переходов. Это упрощает управление базой данных, поскольку не нужно следить за тем, в каком отдельном объекте макроса содержится макрос для формы или отчета. Внедренные макросы также включаются в состав формы или отчета при их копировании, импорте или экспорте.
Например, чтобы не отображать отчет, в котором отсутствуют данные, можно включить макрос в свойство события Отсутствие данных. Чтобы отобразить сообщение, можно использовать макрокоманду MsgBox, а затем чтобы отменить просмотр отчета вместо отображения пустой страницы, применить макрокоманду ОтменитьСобытие.
-
В области переходов щелкните правой кнопкой мыши форму или отчет, содержащий макрос, а затем выберите команду Режим конструктора
или Режим макета
.
-
Если окно свойств не открыто, нажмите клавишу F4.
-
Выберите элемент управления или раздел, содержащий свойства события, в который нужно встроить макрос. В верхней части окна свойств из выпадающего списка в разделе Тип выбора можно выбрать элемент управления или раздел, а также форму или отчет целиком.
-
В окне свойств перейдите на вкладку События.
-
Выберите свойство события, в которое нужно встроить макрос, затем нажмите кнопку
.
-
В диалоговом окне Построитель выделите пункт Макросы и затем нажмите кнопку ОК.
-
В построителе макросов щелкните первую строку столбца Макрокоманда.
-
В раскрывающемся списке Макрокоманда выберите нужный макрос.
-
В группе Аргументы макрокоманды введите необходимые аргументы.
-
Если требуется добавить другую макрокоманду, в столбце Макрокоманда выделите следующую строку и повторите шаги 8 и 9.
-
Закончив создание макроса, нажмите кнопку Сохранить, а затем нажмите кнопку Закрыть.
Макрос запускается каждый раз при возникновении свойства события.
Примечания
В приложении Access можно создать группу макросов в виде внедренного макроса. Однако при возникновении события запускается только первый макрос группы. Последующие макросы игнорируются.
Встроенные макросы не могут быть преобразованы в код Visual Basic для приложений (VBA) с помощью средства Преобразование макросов в Visual Basic в группе Макрос на вкладке Работа с базой данных. Если планируется преобразовывать макросы в код VBA, создайте отдельные макросы, а не встроенные. Тогда с помощью средства Преобразование макросов в Visual Basic можно будет преобразовать их в код VBA.
Изменение макроса
Вставка строки макрокоманды Щелкните правой кнопкой мыши строку макрокоманды, над которой требуется вставить новую строку, а затем выберите команду Вставить строки .
Удаление строки макрокоманды Щелкните правой кнопкой мыши строку, которую требуется удалить, а затем выберите команду Удалить строки .
Перемещение строки макрокоманды Выделите строку макрокоманды, щелкнув заголовок строки слева от макрокоманды, а затем перетащите его в новое положение.
Чтобы вставить, удалить или переместить нескольких строк, следует сначала выделить группу строк, а затем выполнить требуемое действие. Чтобы выделить группу рядов, щелкните заголовок первой выделяемой строки, нажмите клавишу SHIFT, а затем щелкните заголовок последней выделяемой строки. (Заголовок строки — это затененное поле справа от строки макрокоманды.)
Выделить несколько строк также можно, расположив курсор над заголовком первой выделяемой строки, а затем нажав кнопку мыши и перетаскивая курсор вверх или вниз для выделения других строк.
Примечание. При выделении нескольких строк методом перетаскивания первая строка не должна быть выделена. Если строка уже выделена, то в приложении Access это действие будет воспринято как перемещение строки на новое место.
Использование условий для контроля за действиями макроса
В условиях (Отношение. Часть условия, которому должно удовлетворять поле в процессе поиска или отбора. Для использования некоторых отношений необходимо задать значение. Например, условие, включающее поле «Автор» и отношение равно, должно также содержать и значение, например «Иванов».) допускается использование любых выражений, возвращающих значения Истина/Ложь или Да/Нет. Макрокоманда будет выполняться, если выражение имеет значение Истина (Да).
Чтобы ввести условие для макрокоманды, сначала следует отобразить столбец Условие в построителе макросов:
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Условия .
Введите выражение в столбец Условие. Нельзя начинать выражение знаком равенства (=). Для того, чтобы условие применялось к нескольким макрокомандам сразу, введите ... в каждой последующей строке. Например:
Совет. Для того чтобы временно пропустить макрокоманду, введите в качестве условия значение False. Такой прием часто используют при отладке макросов.
Примеры условных выражений в макросах
Выражение | Условие выполнения макрокоманды |
[Город]="Париж" | Поле «Город» в форме, из которой запускается макрос, имеет значение «Париж». |
DCount("[КодЗаказа]", "Заказы")>35 | Количество записей в поле «КодЗаказа» таблицы «Заказы» превышает 35. |
DCount("*", "Заказано", "[КодЗаказа]=Forms![КодЗаказа]![КодЗаказа]")>3 | Имеется более трех записей в таблице «Заказано», у которых значение поля «КодЗаказа» совпадает со значением поля «КодЗаказа» в форме «ПримерФормы». |
[ДатаИсполнения] Between #2-фев-2007# And #2-мар-2007# | Значение поля «ДатаИсполнения» в форме, из которой запускается макрос, попадает в интервал со 2 февраля 2007 по 2 марта 2007 г. |
Forms![Товары]![На складе]<5 | Значение поля «На складе» в форме «Товары» меньше 5. |
IsNull([Имя]) | Поле «Имя» в форме, из которой запускается макрос, содержит пустое значение (Null (Null. Значение, которое можно ввести в поле или использовать в выражениях и запросах для указания отсутствующих или неизвестных данных. В Visual Basic ключевое слово Null указывает значение Null. Некоторые поля, такие как поля первичного ключа, не могут содержать значения Null.)). Данное выражение эквивалентно следующему: [Имя] Is Null |
[Страна]="Литва" And Forms![Сумма продаж]![Объем заказов]>100 | Поле «Страна» в форме, из которой запускается макрос, содержит значение «Литва» и значение поля «Объем заказов» в форме «Сумма продаж» превышает 100. |
[Страна] In ("Латвия", "Литва", "Эстония") And Len([Индекс])<>5 | Поле «Страна» в форме, из которой запускается макрос, имеет значение «Франция», «Италия» или «Испания», и почтовый индекс содержит не 5 символов. |
MsgBox("Подтвердить изменения?",1)=1 | Нажата кнопка ОК в диалоговом окне, в котором функция MsgBox отображает текст Подтвердить изменения? Если в диалоговом окне нажата кнопка Отмена, эта макрокоманда будет пропущена. |
[ВремПеременные]![Переменная1]=43 | Значение временной переменной Переменная1 (созданной при помощи макрокоманды ЗадатьВремПеременную) равно 43. |
[ОшибкаМакроса]<>0 | Значение ОшибкаМакроса свойства объекта Номер не равно 0. Это означает, что в макросе произошла ошибка. Это условие можно использовать вместе с макрокомандами УстранитьОшибкуМакроса и ПриОшибке для определения действия, совершаемого при возникновении ошибки. |
Дополнительные сведения о макрокомандах
При работе в построителе макросов можно получить дополнительные сведения о макрокомандах и аргументах, выделив их и прочитав описание в поле в нижнем правом углу окна построителя макросов. Каждая макрокоманда имеет связанный с ней раздел справки. Чтобы получить дополнительные сведения о макрокоманде, выберите ее в списке макрокоманд и нажмите клавишу F1.
Создание процедуры обработки событий.
Чтобы запустить программу, которая должна выполняться в ответ на событие, следует указать для свойства события, формы, отчета или элемента управления значение и [процедура обработки событий]. При этом будет создан шаблон «Процедура обработки события», затем можно добавить программу, которая должна запускаться в ответ на определенное событие.
Шаги создания процедуры обработки событий:
5>