Макросы и их создание

Несмотря на наличие в Access таких объектов, как запросы, формы и отчеты, для реализации практических задач пользовате­ли высокой квалификации могут использовать средства програм­мирования: язык макросов и язык Visual Basic for Applications (VBA). Макросы и модули на языке VBA оперируют указанными выше объектами Access и объединяют разрозненные действия с ними в единую программу, направленную на решение задачи пользова­теля, уменьшая при этом его вмешательство или полностью от­страняя от решения.

 

Макрос — это программа, состоящая из последовательности макрокоманд. Макрокоманда — это инструкция, ориентированная на выполнение определенного действия.

Например, макрокомандой можно открыть форму, отчет, на­печатать отчет, запустить на выполнение запрос, применить фильтр, присвоить значение, создать свое меню для формы или отчета. Макрокоманда Задать Команду Меню позволяет выполнить любую заданную команду меню. Имеющийся в Access набор мак­рокоманд (около 50) реализует практически любые действия, которые необходимы для решения различных задач.

Язык макросов обеспечивает возможность выполнения боль­шинства задач без использования программирования на Visual Basic. Макросы, являясь надстройкой над Visual Basic, обеспечивают пользователя средствами решения задач, не требующими деталь­ного знания программирования. Язык макросов является языком более высокого уровня, чем Visual Basic.

Набор макросов, имеющийся в Access, определяет набор ме­тодов обработки его объектов. В Access имеются также средства, обеспечивающие взаимодействие макросов с объектами при вы­полнении пользователем определенных действий. Это позволяет управлять выполнением программы извне, т.е. пользователем. Выполняя различные действия для решения своих задач, пользо­ватель инициирует выполнение макросов, автоматизирующих решение связанных с его действиями подзадач. Такой подход су­щественно отличает программирование задач пользователя на языке макросов от их программирования в традиционном понима­нии, при котором только программа управляет процессом реше­ния.

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

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

Создание макроса начинается в окне базы данных, где надо выбрать закладку Макросы и нажать кнопку [Создать], которая открывает соответствующее окно. В этом окне макрокоманды, со­ставляющие макрос, можно ввести в столбец Макрокоманда, для чего достаточно нажать кнопку раскрытия списка макрокоманд в этом столбце и выбрать нужную макрокоманду. Можно ввести имя макрокоманды и с клавиатуры. Макрокоманда по умол­чанию создается со значениями аргументов, соответствующими выбранному объекту. Например, при перетаскивании таблицы создается макрокоманда ОткрытьТаблицу.