Макросы в Access: понятие, формы и создание

В базах данных под управлением Microsoft Access содержатся данные, с которыми совершают арифметические и логические действия. Кроме этого, при работе пользователя с БД выполняются операции при наступлении определенных событий, например, нажатии кнопки или изменении значения в поле формы. Каким образом выполняются эти операции, рассмотрим в статье.

Понятие макроса

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

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

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

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

Макрокоманды

Для добавления макросов Access в меню «Создание» выбираем пункт «Макрос». Система открывает окно нового макроса со списком доступных для добавления команд справа. Кроме списка макрокоманд, здесь вы найдете макросы, уже доступные в этой БД, и функции управления создания процедуры для выполнения.

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

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

Конструктор макросов

Действия по разработке макросов Access выполняют в конструкторе. Команда выбирается из списка и добавляется в окно макроса. Здесь операция раскрывается и запрашивает ввод параметров.

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

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

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

Макросы событий

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

В мастере выбираем категорию «Разное» - «Выполнить макрос» и выбираем заранее созданный объект из списка предложенных. Таким образом, программа привязывается к элементу формы и реагирует на событие со стороны этого элемента.

К уже добавленному на форму элементу управления макрос привязывается в окне свойств. На вкладке «События» обозначен список событий, для которых возможно назначить выполнение последовательности команд. Для нужного пункта выбираем из выпадающего списка макрос, который для выполнения.

Процедура запускается в ответ на изменение фокуса, обновление формы, нажатие клавиш и кнопок, движение указателя мыши и т. д. Список событий зависит от элемента управления.

Макросы данных

В версии Access 2010 и выше стали доступны макросы данных. Они вызываются изменениями, происходящими в элементах какого-либо объекта, или независимы и вызываются по наименованию. Благодаря этому типу макросов Access приобретает возможности «продвинутых» СУБД (система управления базами данных).

Теперь возможна фиксация истории изменений строки таблицы, проверка параметров добавляемой записи перед ее вставкой – таким образом в СУБД, например, MS SQL Server работают триггеры. При редактировании отдельных полей система может формировать и отправлять уведомления на электронную почту пользователей.

Эти программные единицы добавляются в режиме таблицы. На вкладке «Работа с таблицами» - «Таблица» выбирается, когда будет срабатывать макрос: до или после изменения/удаления, после вставки. Здесь же можно добавить именованный макрос, вызываемый по наименованию. Список макрокоманд здесь содержит операции, которые выполняются с данными – ошибками в значениях, полями, записями таблиц.

Условия

Часто необходимо, чтобы макрос работал не каждый раз, а только в том случае, когда соблюдается какое-либо условие. Для задания этого условия в макрос Access добавляется макрокоманда «Если» из каталога. Здесь прописывается условие, при котором будет выполняться следующая операция. При необходимости добавляется также команда «Иначе» или целый дополнительный блок «Иначе если».

В приведенном примере мы закрываем форму «Абитуриенты», если поле «Фамилия» пустое. Если же это не так, мы сохраняем запись и только после этого закрываем форму.

Благодаря новому конструктору макросов в Access, начиная с версии 2010, разработчик может гибко настроить систему и обеспечить большую безопасность данных в таблицах. Желаем вам удачи в освоении новых возможностей MS Access.

Комментарии