Макросы в Access: понятие, формы и создание
В базах данных под управлением Microsoft Access содержатся данные, с которыми совершают арифметические и логические действия. Кроме этого, при работе пользователя с БД выполняются операции при наступлении определенных событий, например, нажатии кнопки или изменении значения в поле формы. Каким образом выполняются эти операции, рассмотрим в статье.
Понятие макроса
БД Access состоят из объектов хранения и обработки значений в таблицах. Одни из таких объектов – макросы Access – программные единицы, использующиеся для внесения изменений в данных базы или пользовательском интерфейсе.
Существует два вида макросов: событий и данных. Первый вид отвечает за действия в пользовательском интерфейсе. Он привязан к элементам форм и самим формам. К такому виду относятся выполнение операций при нажатии на кнопку, приобретение или потеря фокуса, открытие-закрытие формы и т. д.
По этим событиям система совершает сохранение записи или значение поля, применение фильтра, экспорт данных и т. п. Благодаря новому конструктору, создание макросов в Access стало несложной процедурой, доступной начинающим разработчикам. Этот конструктор обладает достоинствами, которых были лишены его предшественники:
- система предлагает каталог микрокоманд с предустановленными действиями и интуитивно понятными наименованиями, из которых выбирается необходимое;
- макрос используется не один раз, а копируется из ранее созданного;
- в командах используются условия;
- горячие сочетания клавиш для упрощения и ускорения работы;
- добавление комментариев, которые впоследствии помогут понять работу программы;
- группы команд, выполняющиеся одна за другой.
Макрокоманды
Для добавления макросов Access в меню «Создание» выбираем пункт «Макрос». Система открывает окно нового макроса со списком доступных для добавления команд справа. Кроме списка макрокоманд, здесь вы найдете макросы, уже доступные в этой БД, и функции управления создания процедуры для выполнения.
Макрокоманды содержатся в папках по категориям выполняемых ими действий. Наименования папок отображают область, к которой относятся операции. Это интерфейсные операции, задачи по передаче данных из БД или в нее, управление объектами базы, окнами программы и элементами объектов.
Чтобы добавить команду в макрос, ее находят в каталоге и дважды кликают по наименованию. Можно просто выбрать нужную операцию в выпадающем списке макроса или перетащить ее из каталога в поле макроса.
Конструктор макросов
Действия по разработке макросов Access выполняют в конструкторе. Команда выбирается из списка и добавляется в окно макроса. Здесь операция раскрывается и запрашивает ввод параметров.
Часть этих параметров выбирают из раскрывающихся списков, например, если операция выполняется над объектом, у команды присутствует аргумент для указания этого объекта, и поле для ввода этого аргумента представляет собой выпадающий список с доступными объектами текущей базы. В некоторые поля разработчик вводит параметр самостоятельно, например, указывает наименование фильтра для операции открытия формы.
В новом конструкторе добавлена еще одна функция. Она носит название IntelliSense и помогает во вводе выражений в макросах в базе данных Access. Когда пользователь вводит значение аргумента, функция подсказывает ему возможные варианты, из которых выбирается необходимый.
Конструктор позволяет добавлять микрокоманды, менять их местами и удалять, если это необходимо. Для изменения порядка выполнения команд в верхнем правом углу команды размещаются кнопки с зелеными стрелками. В первой по порядку операции стрелка указывает только вниз, в последней – только вверх, для команд в середине списка доступно перемещение и вниз, и вверх. Нажатие крестика удаляет команду из макроса.
Макросы событий
Макросы на форму Access добавляют сразу на элемент управления. При создании элемента автоматически открывается мастер, определяющий действия, которые выполняет макрос в ответ на событие со стороны этого элемента. Яркий пример – действия при нажатии на кнопку формы.
В мастере выбираем категорию «Разное» - «Выполнить макрос» и выбираем заранее созданный объект из списка предложенных. Таким образом, программа привязывается к элементу формы и реагирует на событие со стороны этого элемента.
К уже добавленному на форму элементу управления макрос привязывается в окне свойств. На вкладке «События» обозначен список событий, для которых возможно назначить выполнение последовательности команд. Для нужного пункта выбираем из выпадающего списка макрос, который для выполнения.
Процедура запускается в ответ на изменение фокуса, обновление формы, нажатие клавиш и кнопок, движение указателя мыши и т. д. Список событий зависит от элемента управления.
Макросы данных
В версии Access 2010 и выше стали доступны макросы данных. Они вызываются изменениями, происходящими в элементах какого-либо объекта, или независимы и вызываются по наименованию. Благодаря этому типу макросов Access приобретает возможности «продвинутых» СУБД (система управления базами данных).
Теперь возможна фиксация истории изменений строки таблицы, проверка параметров добавляемой записи перед ее вставкой – таким образом в СУБД, например, MS SQL Server работают триггеры. При редактировании отдельных полей система может формировать и отправлять уведомления на электронную почту пользователей.
Эти программные единицы добавляются в режиме таблицы. На вкладке «Работа с таблицами» - «Таблица» выбирается, когда будет срабатывать макрос: до или после изменения/удаления, после вставки. Здесь же можно добавить именованный макрос, вызываемый по наименованию. Список макрокоманд здесь содержит операции, которые выполняются с данными – ошибками в значениях, полями, записями таблиц.
Условия
Часто необходимо, чтобы макрос работал не каждый раз, а только в том случае, когда соблюдается какое-либо условие. Для задания этого условия в макрос Access добавляется макрокоманда «Если» из каталога. Здесь прописывается условие, при котором будет выполняться следующая операция. При необходимости добавляется также команда «Иначе» или целый дополнительный блок «Иначе если».
В приведенном примере мы закрываем форму «Абитуриенты», если поле «Фамилия» пустое. Если же это не так, мы сохраняем запись и только после этого закрываем форму.
Благодаря новому конструктору макросов в Access, начиная с версии 2010, разработчик может гибко настроить систему и обеспечить большую безопасность данных в таблицах. Желаем вам удачи в освоении новых возможностей MS Access.