Раздел 4. РАЗРАБОТКА ПРИЛОЖЕНИЙ ПОЛЬЗОВАТЕЛЯ Лекция 10 Макросы и их создание Макрос — это программа, состоящая из последовательности макрокоманд. Макрокоманда — это инструкция, ориентированная на выполнение определенного действия. Например, макрокомандой можно открыть форму, отчет, напечатать отчет, запустить на выполнение запрос, применить фильтр, присвоить значение, создать свое меню для формы или отчета. Макрокоманда ЗадатъКомандуМеню позволяет вьшолнить любую заданную команду меню. Имеющийся в Access набор макрокоманд (около 50) реализует практически любые действия, которые необходимы для решения различных задач. Язык макросов обеспечивает возможность выполнения большинства задач без использования программирования на Visual Basic. Макросы, являясь надстройкой над Visual Basic, обеспечивают пользователя средствами решения задач, не требующими детального знания программирования. Язык макросов является языком более высокого уровня, чем Visual Basic. Формирование макроса осуществляется в диалоговом режиме и сводится к записи в окне макроса последовательности макрокоманд, в соответствии с которой они и выполняются. Создание макроса начинается в окне базы данных, где надо выбрать закладку Макросы и нажать кнопку [Создать], которая открывает соответствующее окно. Рис. 10.1 .Окно базы данных В этом окне макрокоманды, составляющие макрос, можно ввести в столбец Макрокоманда, для чего достаточно нажать кнопку раскрытия списка макрокоманд в этом столбце и выбрать нужную макрокоманду (рис. 10.1). Можно ввести имя макрокоманды и с клавиатуры. Макрокоманда по умолчанию создается со значениями аргументов, соответствующими выбранному объекту. Например, при перетаскивании таблицы создается макрокоманда ОткрытьТаблицу. В нижней части окна можно сформировать Аргументы макрокоманды. Значения аргументов задаются путем выбора их из списка, открывшегося в данной строке. В поле справа от строк аргументов выводится сообщение с пояснениями для выбранного аргумента. В строки столбца Примечание вводится необязательный комментарий, описывающий результат выполнения макрокоманды. Каждая новая макрокоманда макроса добавляется к уже существующим макрокомандам записью ее в ближайшую незанятую строку бланка. При этом порядок размещения макрокоманд в бланке определяет последовательность их выполнения. После ввода всех макрокоманд в макрос его надо сохранить, воспользовавшись командой меню Файл\Сохранить или кнопкой на панели инструментов макроса. Для выполнения макроса можно нажать в Access 2003 кнопку на панели инструментов [Запуск], в Access 2007 на пиктограмму Макрос. Если макрос уже закрыт, то его надо выбрать в окне базы данных и нажать кнопку [Запуск] в этом окне (в Access 2007 2 раза щелкнуть мышкой по имени макроса ). Таким Рис. 10.2. Окно создания макроса образом, по инициативе пользователя задача может решаться многократно. Для просмотра и редактирования существующего макроса надо открыть его и выбрать его в окне базы данных и нажать кнопку [Конструктор], в Access 2007 2 раза щелкнуть мышкой по имени макроса. Группа макросов создается как один макрос, в котором содержатся несколько макросов (например, связанных с решением одной задачи или используемых при работе с одной формой). Работать с группой часто оказывается удобнее, чем с несколькими отдельными макросами. Для ссылок на макросы, которые вошли в группу макросов, используется следующий синтаксис:<Имя Группы Макросов>.<Имя Макроса> Использование условий в макросе. Условия позволяют задать порядок передачи управления между макрокомандами в макросе и обеспечивают выполнение определенных ветвей алгоритма. Например, если в макросе проверяется значение поля в форме на соответствие заданным условиям, то для одних значений может потребоваться вывод сообщения, а для других значений — вывод отчета. Условие вводится в строку макрокоманды в столбец Условие, который вызывается в окно макроса нажатием соответствующей кнопки на панели инструментов. Задается условие с помощью логического выражения. Ветвления в программе. В программе, состоящей из макрокоманд, можно организовать ветвления. Для организации ветвлений в программе нужно наряду с условиями использовать макрокоманды ОстановитъМакрос и ЗапускМакроса последняя из которых позволяет создавать также циклы в программах. Организация выполнения макросов. При запуске макроса выполнение начинается с первой макрокоманды и следует по алгоритму, реализуемому макросом. В процессе выполнения проверяются условия и в зависимости от результата выполняются те или иные макрокоманды или макросы. При вызове другого макроса управление передается вызванному макросу. Вызванный макрос может выполняться несколько раз. После выполнения вызванного макроса управление возвращается к вызывающему макросу и продолжается выполнение его макрокоманд. При этом, следуя алгоритму, макрос выполняется по одному из заранее определенных путей из множества возможных. Таким образом, макрос сам выбирает этот путь в зависимости от условий. В Access имеется возможность организации выполнения макросов с использованием механизма расширенной обработки событий (т.е. результатов действий пользователя). Access распознает определенные события, к которым может привязываться запуск макроса. Событиями, например, являются открытие отчета, ввод новых данных, перевод фокуса на другую запись или поле в форме, щелчок мышью. Существуют события формы, события элемента управления, события записи и раздела формы, события отчета и раздела отчета. Различные события вызывают различную реакцию системы, поэтому порядок выполнения макросов зависит от порядка возникновения событий и в значительной степени определяется действиями пользователя в формах. При этом управление программой в основном осуществляется пользователем, который выполняет различные действия, а программа реагирует на них.