Создание макроса данных
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Макросы данных в Access позволяют добавлять логики в события, происходящие в таблицах, такие как добавление, обновление или удаление данных. Они похожи на «триггеры» в Microsoft SQL Server. В этой статье объясняется, как создавать и отлаживать макросы данных.
В этой статье
Сведения о макросах данных
Управление макросами данных осуществляется на вкладке » Таблица » при просмотре таблицы в режиме таблицы и не отображается в разделе «макросы» в области навигации. Помимо прочего, вы можете использовать макросы данных для проверки достоверности данных в таблице. Существует два основных типа макросов данных: те, которые вызываются событиями таблиц (также называемые макросами данных, управляемыми событиями), и те, которые выполняются в ответ на вызов с помощью имени (также называемого «именованными макросами данных»).
Создание макроса данных, управляемого событиями
Табличные события происходят при добавлении, обновлении и удалении данных в таблице. Вы можете программировать макросы данных, чтобы они выполнялись сразу же после любого из этих трех событий или сразу же перед событием удаления или изменения. Чтобы прикрепить макрос данных к событию в таблице, выполните указанные ниже действия.
В области навигации дважды щелкните таблицу, в которую нужно добавить макрос данных.
На вкладке Таблица в группе до или после событий щелкните событие, к которому нужно добавить макрос. Например, чтобы создать макрос данных, запускаемый после удаления записи из таблицы, нажмите кнопку после удаления.
Примечание: Если к событию уже присвоено макрос, на ленте выделена кнопка со значком.
Откроется конструктор макросов. Если вы уже создали макрос для этого события, Access выведет на экран существующий макрос.
Добавьте действия, которые нужно выполнить в макросе.
Сохраните и закройте макрос.
Дополнительные сведения о создании макросов можно найти в статье Создание макроса пользовательского интерфейса.
Создание именованного макроса данных
Именованный или автономный макрос данных связан с определенной таблицей, но не с определенным событием. Вы можете вызвать макросы с именованными данными из любого другого макроса данных или из стандартного макроса.
В области навигации дважды щелкните таблицу, в которую нужно добавить макрос данных.
На вкладке Таблица в группе Именованные макросы выберите пункт именованный макроси нажмите кнопку создать именованный макрос.
Access откроет поСтроитель макросов, в котором можно добавить действия.
Дополнительные сведения о создании макросов можно найти в статье Создание макроса пользовательского интерфейса.
Сведения о параметрах
Параметры позволяют передавать значения в макросы именованных данных, чтобы их можно было использовать в условных инструкциях и других вычислениях. Кроме того, они позволяют передавать ссылки на объекты из стандартных макросов в макросы данных.
Примечание: Параметры недоступны в макросах данных на диске событий.
Чтобы добавить параметр в макрос данных, выполните указанные ниже действия.
В верхней части макроса нажмите кнопку создать параметр.
В поле имя введите уникальное имя параметра. Это имя, которое используется для ссылки на параметр в выражениях.
При необходимости введите описание параметра в поле Описание . Рекомендуем ввести описание, так как в дальнейшем при использовании этого параметра текст описания, введенный здесь, будет отображаться во всплывающей подсказке. Это помогает запомнить назначение параметра.
Для запуска макроса с именованными данными из другого макроса используется Макрокоманда » рундатамакро «. Действие предоставляет поле для каждого созданного параметра, чтобы можно было предоставить необходимые значения.
Управление макросами данных
Макросы данных не отображаются в области навигации в разделе макросы. Для создания, изменения, переименования и удаления макросов данных необходимо использовать команды на ленте в режиме таблицы или конструктора таблицы.
Изменение макроса данных, управляемого событиями
В области навигации дважды щелкните таблицу, содержащую макрос данных, который нужно изменить.
На вкладке Таблица в группе до или после событий щелкните событие для макроса, который нужно изменить. Например, чтобы изменить макрос данных, выполняемый после удаления записи из таблицы, нажмите кнопку после удаления.
Примечание: Если событие не имеет связанного с ним макроса, его значок не выделяется в меню.
Access откроет поСтроитель макросов, и вы сможете начать редактирование макроса.
Изменение именованного макроса данных
В области навигации дважды щелкните таблицу, чтобы открыть ее в режиме таблицы.
На вкладке Таблица в группе Именованные макросы выберите пункт именованный макроси наведите указатель мыши на пункт Изменить именованный макрос.
В подменю выберите макрос данных, который вы хотите изменить.
Access откроет поСтроитель макросов, и вы сможете начать редактирование макроса.
ПереИменование именованного макроса данных
В области навигации дважды щелкните таблицу, чтобы открыть ее в режиме таблицы.
На вкладке Таблица в группе Именованные макросы выберите пункт именованный макрос, а затем — команду Переименовать или удалить макрос.
В диалоговом окне Диспетчер макросОв данных нажмите кнопку Переименовать рядом с макросом данных, который нужно переименовать.
Microsoft Access выберет имя текущего макроса.
Введите новое имя или измените существующее, а затем нажмите клавишу ВВОД.
Удаление макроса данных
Ниже описана процедура удаления именованных и управляемых событий макросов данных.
В области навигации дважды щелкните таблицу, чтобы открыть ее в режиме таблицы.
На вкладке Таблица в группе Именованные макросы выберите пункт именованный макрос, а затем — команду Переименовать или удалить макрос.
В диалоговом окне Диспетчер макросОв данных нажмите кнопку Удалить рядом с макросом данных, который вы хотите переименовать.
Примечание: Вы также можете удалить макрос, управляемый событиями, удалив все его действия.
Отладка макросов данных
Некоторые распространенные инструменты для отладки макросов, такие как команда «один шаг» и Макрокоманда «MessageBox», недоступны для макросов данных. Однако если возникают проблемы с макросом данных, вы можете использовать таблицу журнала приложений в сочетании с макрокомандами OnError, Раисиррор и Ложевент, которые помогут найти ошибки в макросах данных.
Отображение таблицы журнала приложений
Таблица журнал приложений — это системная таблица (с именем Усисаппликатионлог), которая по умолчанию не отображается в области навигации. При возникновении ошибки в макросе данных вы можете узнать, что произошло, просматривая данные в таблице журнал приложений.
Чтобы отобразить таблицу журнала приложений, выполните указанные ниже действия.
Щелкните файл , чтобы открыть представление Microsoft Backstage.
На вкладке сведения нажмите кнопку Просмотр таблицы журнала приложений.
Примечание: Если кнопка Просмотр таблицы журнала приложений не отображается, это означает, что таблица журнала приложений еще не создана для этой базы данных. После того как событие зарегистрируется, кнопка появится на вкладке сведения .
Вы можете создавать строки в таблице журнала приложений с помощью макрокоманды Ложевент или Раисиррор, а также управлять тем, как приложение Access реагирует на ошибки с помощью действия OnError.
Создание макроса пользовательского интерфейса
В Microsoft Access макросы, присоединенные к объектам пользовательского интерфейса, таким как кнопки, текстовые поля, формы и отчеты, называются макросами пользовательского интерфейса. Это позволяет отличить их от макросов данных, которые присоединяются к таблицам. С помощью макросов пользовательского интерфейса можно автоматизировать ряд действий, таких как открытие другого объекта, применение фильтра, запуск операции экспорта и многие другие задачи. В этой статье представлен новый конструктор макросов, а также описаны основные задачи, связанные с созданием макроса пользовательского интерфейса.
Примечание: Эта статья не относится к веб-приложениям Access.
В этой статье
Общие сведения
Макросы могут содержаться в объектах макросов (такие макросы иногда называют автономными) или же внедряться в свойства событий форм, отчетов и элементов управления. Внедренные макросы становятся частью объекта или элемента управления. Объекты макроса отображаются в области навигации в группе Макросы; внедренные макросы в ней не указываются.
Каждый макрос состоит из одной или нескольких макрокоманд. В зависимости от контекста, в котором вы работаете, некоторые макрокоманды могут быть недоступны.
Построитель макросов
Ниже описаны основные основные функции построителя макросов.
Каталог макрокоманд Макрокоманды упорядочены по типу и доступны для поиска.
IntelliSense. При вводе выражений IntelliSense предлагает возможные значения и позволяет выбрать нужный вариант.
Сочетания клавиш Использование сочетаний клавиш для более быстрой и удобной написания макросов.
Поток программы Создавайте более удобочитаемые макросы с помощью строк комментариев и групп действий.
Условные операторы Обеспечивает более сложное выполнение логики с поддержкой вложенных функций если и/или других.
Повторное использование макроса В каталоге макрокоманд отображаются другие созданные макросы, позволяющие скопировать их в тот, с которым вы работаете.
Упрощение совместного использования Скопируйте макрос, а затем вставьте его в виде XML-файла в сообщение электронной почты, запись в группу новостей, блог или образец кода.
В этом видеоролике показано, как пошаговое руководство по основным областям построителя макросов.
Создание автономного макроса
Данная процедура позволяет создать объект автономного макроса, который будет выводиться в списке Макросы в области навигации. Макрос полезно сделать автономным, если вы хотите повторно использовать его во многих частях приложения. Вызывая макрос из других макросов, можно избежать дублирования кода в нескольких местах.
На вкладке Создание в группе Макросы и код нажмите кнопку Макрос.
Откроется конструктор макросов.
На панели быстрого доступа нажмите кнопку Сохранить.
В диалоговом окне Сохранение введите имя макроса, а затем нажмите кнопку «ОК».
Создание внедренного макроса
Данная процедура позволяет создать макрос, внедренный в свойство события объекта. Такие макросы не отображаются в области навигации, но их можно вызывать их событий, например Загрузка или Нажатие кнопки.
Так как макрос становится частью объекта формы или отчета, внедренные макросы рекомендуется использовать для автоматизации задач, которые относятся к конкретной форме или отчету.
В области навигации щелкните правой кнопкой мыши форму или отчет, в которые нужно добавить макрос, и выберите команду Режим макета.
Если окно свойств не отображается, нажмите клавишу F4.
Щелкните элемент управления или раздел, содержащий свойство события, в которое вы хотите внедрить макрос. Вы также можете выбрать элемент управления или раздел (либо форму или отчет целиком) с помощью раскрывающегося списка Возможен выбор в верхней части страницы свойств.
В области задач «Страница свойств» откройте вкладку Событие.
Щелкните поле свойства для события, которое должно активировать макрос. Например, если вы хотите, чтобы макрос выполнялся при нажатии кнопки, щелкните поле свойства Нажатие для кнопки.
Если поле свойства содержит слова [Внедренный макрос], это означает, что для этого события уже создан макрос. Вы можете изменить его, выполнив действия, описанные далее в этой процедуре.
Если поле содержит слова [Процедура обработки событий], это означает, что для данного события уже была создана процедура Visual Basic для приложений (VBA). Перед внедрением макроса в событие потребуется удалить процедуру. Для этого можно удалить слова [Процедура обработки событий], но сначала следует изучить процедуру, чтобы убедиться, что ее удаление не нарушит функциональность базы данных. В некоторых случаях можно воспроизвести функции процедуры VBA с помощью внедренного макроса.
Нажмите кнопку » построить «.
Если откроется диалоговое окно Построитель, убедитесь, что выбран пункт Макросы, а затем нажмите кнопку ОК.
Откроется конструктор макросов. Перейдите к следующему разделу, чтобы добавить макрокоманды в макрос.
Добавление макрокоманд в макрос
Макрокомандами называются отдельные команды, которые образуют макрос. Имя макрокоманды отражает ее назначение, например НайтиЗапись или ЗакрытьБазуДанных.
Шаг 1. Просмотр или поиск макрокоманд
Чтобы добавить макрокоманду, прежде всего нужно найти ее в раскрывающемся списке Добавить новую макрокоманду или в каталоге макрокоманд.
По умолчанию в раскрывающемся списке Добавить новую макрокоманду и в каталоге макрокоманд выводятся только макрокоманды, которые выполняются в ненадежных базах данных. Чтобы просмотреть все макрокоманды:
На вкладке Конструктор в группе Показать или скрыть выберите пункт Показать все действия.
Если каталог макрокоманд не отображается, на вкладке Конструктор в разделе Показать или скрыть нажмите кнопку Каталог макрокоманд.
Найти макрокоманду можно одним из следующих способов:
Щелкните стрелку раскрывающегося списка Добавить новую макрокоманду и прокрутите список вниз, чтобы найти макрокоманду. Сначала выводятся элементы управления выполнением программы, а затем — макрокоманды в алфавитном порядке.
Найдите макрокоманду в области «Каталог макрокоманд». Макрокоманды сгруппированы по категориям. Разверните категории для просмотра макрокоманд. При выборе макрокоманды в нижней части каталога выводится ее краткое описание.
Выполните поиск макрокоманды, введя текст в поле «Поиск» в верхней части области «Каталог макрокоманд». По мере ввода список макрокоманд фильтруется и в нем выводятся все макросы, которые содержат текст. Access ищет введенный текст в именах макросов и их описаниях.
Шаг 2. Добавление макрокоманды в макрос
После того как вы нашли нужную макрокоманду, добавьте ее в макрос с помощью одного из следующих способов:
Выберите макрокоманду в списке Добавить новую макрокоманду или просто начните вводить имя макрокоманды в поле. Access добавит макрокоманду туда, где отображался список Добавить новую макрокоманду.
Перетащите макрокоманду из каталога макрокоманд в область макроса. Появится полоса вставки, показывающая, куда будет вставлена макрокоманда, когда вы отпустите кнопку мыши.
Дважды щелкните макрокоманду в каталоге макрокоманд.
Если в области макроса выбрана макрокоманда, Access добавит новую макрокоманду под выбранной.
Если в области макроса выделен блок Группа, Если, Иначе если, Иначе или Вложенный макрос, Access добавит новую макрокоманду в него.
Если в области макроса не выбраны макрокоманды и блоки, Access добавит новую макрокоманду в конец макроса.
Если вы уже создали один или несколько макросов, они указаны в узле В этой базе данных каталога макрокоманд.
При перетаскивании автономного макроса (который указан в разделе Макросы) в область макроса создается макрокоманда ЗапускМакроса, которая выполняет перетащенный макрос. Затем вы можете с помощью раскрывающегося списка вызвать вложенные макросы, если они имеются.
Если вы хотите просто скопировать макрокоманды из автономного макроса в текущий (вместо того чтобы создавать макрокоманду ЗапускМакроса), щелкните его правой кнопкой мыши в каталоге макрокоманд и выберите команду Добавить копию макроса.
При перетаскивании внедренного макроса (указанного в объекте формы или отчета) в область макроса макрокоманды из него копируются в текущий макрос.
Вы также можете создать макрокоманду путем перетаскивания объекта базы данных из области навигации в область макроса. Если вы перетащите в область макроса таблицу, запрос, форму, отчет или модуль, Access добавит макрокоманду, открывающую их. При перетаскивании другого макроса в область макросов Access добавит макрокоманду, которая запускает этот макрос.
Шаг 3. Ввод аргументов
Для большинства макрокоманд требуется по крайней мере один аргумент. Чтобы просмотреть описание любого из аргументов, выделите макрокоманду, а затем наведите указатель на аргумент. Для многих аргументов вы можете выбрать значение из раскрывающегося списка. Если для аргумента требуется ввести выражения, IntelliSense помогает сделать это, предлагая возможные значения по мере ввода, как показано на рисунке ниже:
Когда появится значение, которое вы хотите использовать, добавьте его в выражение, дважды щелкнув его или выделив его с помощью клавиш со стрелками, а затем нажав клавишу TAB или ВВОД.
Дополнительные сведения о создании выражений см. в статье Введение в использование выражений.
Сведения об использовании IntelliSense со свойствами веб-базы данных
При создании макроса пользовательского интерфейса, внедренного в веб-совместимую форму, IntelliSense позволяет добавлять любые свойства формы в выражение. Однако в веб-базе данных с помощью макросов пользовательского интерфейса можно получать доступ только к некоторым свойствам формы. Например, если в форме «Форма1» есть элемент управления «Элемент1», IntelliSense позволит добавить [Формы]![Форма1]![Элемент1].[ControlSource] в выражение в макросе пользовательского интерфейса. Но если опубликовать базу данных в службах Access, макрос, содержащий выражение, будет вызывать ошибку при запуске на сервере.
В таблице ниже перечислены свойства, которые вы можете использовать в макросах пользовательского интерфейса в веб-базах данных:
Caption, Dirty, AllowAdditions, AllowDeletions, AllowEdits