Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 18
Текст из файла (страница 18)
Язык макросов является языкомболее высокого уровня, чем Visual Basic.Набор макросов, имеющийся в Access, определяет набор методов обработки его объектов. В Access имеются также средства,обеспечивающие взаимодействие макросов с объектами при выполнении пользователем определенных действий. Это позволяетуправлять выполнением программы извне, т.е. пользователем.Выполняя различные действия для решения своих задач, пользователь инициирует выполнение макросов, автоматизирующихрешение связанных с его действиями подзадач.
Такой подход существенно отличает программирование задач пользователя на язы92ке макросов от их программирования в традиционном понимании, при котором только программа управляет процессом решения.Отметим, что наличие средств запуска программ пользователем не исключает возможности написания программ на языкемакросов, которые без вмешательства пользователя могут решатьнужные задачи полностью.
В этом случае задача решается рядомвзаимосвязанных макросов. При этом связи между макросами могут иметь сложную ветвистую логическую структуру, для организации которой в макросе определяются условия выполнения макрокоманд. Это позволяет пользователю для решения своих задачзапускать только главную программу, а далее все управление еевыполнением осуществляется изнутри. После запуска программасама открывает необходимые объекты, выбирает и обрабатываетданные, вызывает другие макросы, следуя алгоритму решениязадачи пользователя. При необходимости программа инициируетдиалог с пользователем.Формирование макроса осуществляется в диалоговом режимеи сводится к записи в окне макроса последовательности макрокоманд, в соответствии с которой они и выполняются.Создание макроса начинается в окне базы данных, где надовыбрать закладку Макросы и нажать кнопку [Создать], котораяоткрывает соответствующее окно.
В этом окне макрокоманды, составляющие макрос, можно ввести в столбец Макрокоманда, длячего достаточно нажать кнопку раскрытия списка макрокоманд вэтом столбце и выбрать нужную макрокоманду (рис. 3.1). Можноввести имя макрокоманды и с клавиатуры. Макрокоманда по умолчанию создается со значениями аргументов, соответствующимивыбранному объекту. Например, при перетаскивании таблицысоздается макрокоманда ОткрытъТаблицу.В нижней части окна можно сформировать Аргументы макрокоманды. Значения аргументов задаются путем выбора их из списка,открывшегося в данной строке. В поле справа от строк аргументоввыводится сообщение с пояснениями для выбранного аргумента.В строки столбца Примечание вводится необязательный комментарий, описывающий результат выполнения макрокоманды.
Каждая новая макрокоманда макроса добавляется к уже существующим макрокомандам записью ее в ближайшую незанятую строкубланка. При этом порядок размещения макрокоманд в бланке определяет последовательность их выполнения. После ввода всех макрокоманд в макрос его надо сохранить, воспользовавшись командой меню Файл| Сохранить или кнопкой на панели инструментовмакроса.Для выполнения макроса можно нажать кнопку на панели инструментов [Запуск]. Если макрос уже закрыт, то его надо выбратьв окне базы данных и нажать кнопку [Запуск] в этом окне.
Таким93Ж М акрос2 : м акросПоимечв!.•команда ;ВосстановитьВывестиВФорматеВыводНаЭкранВыделитьОбъектВыполнитьКомандуВыходДобавитьМенюЗадатьЗначениеМня формыРе-жимФорма"“ИмЯф „л ь ,-;;ф о р м ь^111 рвУИЙб*■•И'ТГ.’Гтор.?Условие отбора•1а■Обычное.. ■■.п росм отра,-Д Я Йпрзеьинауште1: 1 .1!:Рис. 3.1. Окно создания макросаобразом, по инициативе пользователя задача может решатьсямногократно. Для просмотра и редактирования существующегомакроса надо выбрать его в окне базы данных и нажать кнопку[Конструктор].Группа макросов создается как один макрос, в котором содержатся несколько макросов (например, связанных с решением одной задачи или используемых при работе с одной формой).
Работать с группой часто оказывается удобнее, чем с несколькимиотдельными макросами.Для создания группы макросов нужно вызвать столбец Имямакроса, нажав кнопку [Имена макросов] на панели инструментов. В ячейку этого столбца надо ввести имя первого макроса, входящего в группу, затем записать макрокоманды, выполняемые впервом макросе. Аналогичным образом надо ввести имена другихмакросов и их макрокоманды. Все макросы, созданные в одномокне, будут составлять одну группу макросов.
Имя, указанное присохранении такой группы макросов, будет именем группы, которое выводится в списке макросов в окне базы данных.Для ссылок на макросы, которые вошли в группу макросов,используется следующий синтаксис:<Имя Группы Макросов>.<Имя Макроса>Использование условий в макросе. Условия позволяют задатьпорядок передачи управления между макрокомандами в макросеи обеспечивают выполнение определенных ветвей алгоритма. Н апример, если в макросе проверяется значение поля в форме насоответствие заданным условиям, то для одних значений может94потребоваться вывод сообщения, а для других значений — выводотчета.Условие вводится в строку макрокоманды в столбец Условие,который вызывается в окно макроса нажатием соответствующейкнопки на панели инструментов.
Задается условие с помощью логического выражения.Ветвления в программе. В программе, состоящей из макрокоманд, можно организовать ветвления.Для организации ветвлений в программе нужно наряду с условиями использовать макрокоманды ОстановитьМакрос и ЗапускМакроса, последняя из которых позволяет создавать такжециклы в программах.Организация выполнения макросов. При запуске макроса выполнение начинается с первой макрокоманды и следует по алгоритму, реализуемому макросом. В процессе выполнения проверяются условия и в зависимости от результата выполняются те илииные макрокоманды или макросы. При вызове другого макросауправление передается вызванному макросу.
Вызванный макросможет выполняться несколько раз. После выполнения вызванногомакроса управление возвращается к вызывающему макросу и продолжается выполнение его макрокоманд. При этом, следуя алгоритму, макрос выполняется по одному из заранее определенныхпутей из множества возможных. Таким образом, макрос сам выбирает этот путь в зависимости от условий.В Access имеется возможность организации выполнения макросов с использованием механизма расширенной обработки событий (т.е.
результатов действий пользователя). Access распознает определенные события, к которым может привязываться запуск макроса. Событиями, например, являются открытие отчета, ввод новых данных, перевод фокуса на другую запись илиполе в форме, щелчок мышью. Существуют события формы, события элемента управления, события записи и раздела формы,события отчета и раздела отчета. Различные события вызываютразличную реакцию системы, поэтому порядок выполнения макросов зависит от порядка возникновения событий и в значительной степени определяется действиями пользователя в формах. При этом управление программой в основном осуществляется пользователем, который выполняет различные действия, апрограмма реагирует на них.3.2.
Программирование на языке УВАЯзык VBA стал общим инструментом для всех приложенийMicrosoft Office, позволяющим решать любые задачи программирования, начиная от автоматизации действий конкретного пользо95вателя и кончая разработкой полномасштабных приложений, использующих Microsoft Office как среду разработки.Модель программирования в Access является событийно-управляемой, т.
е. в процессе работы приложения возникают события,которые запускают специальные программы — обработчики событий. Большое количество разнообразных событий определено втаких объектах Access, как формы, отчеты и элементы управления в них.Программный доступ к постоянным (хранимым в приложенииAccess) и временным объектам осуществляется с помощью объектных моделей VBA.3.2.1.
Объекты и семейства VBAЯзык VBA является объектно-ориентированным языком программирования. Стандартные объекты VBA представляют собойосновные средства манипуляции с данными Microsoft Access идругих приложений семейства Microsoft Office. Знание технологииобъектно-ориентированного программирования и состава объектных моделей VBA позволяет разрабатывать профессиональныеприложения, выполняющие всю необходимую обработку данных.Объект (object) — абстракция, которой оперируют в объектно-ориентированных языках программирования. Объект обладаетсобственными характерными признаками, отличающими его отдругих объектов; кроме того, объект имеет свое поведение.Класс (class) — описание совокупности однотипных объектов.Класс можно сравнить с типом данных, где переменной являетсяобъект. В этом случае говорят, что объект представляет собой экземпляр определенного класса.Свойство (property) — отдельная характеристика объекта иликласса.
Свойство объекта может принимать определенное значение.Метод (method) — процедура (или функция) объекта или класса. У объекта или класса может быть определенное количествометодов и свойств. Методы определяют поведение объекта. В объектно-ориентированных языках программирования поведение приложения определяется поведением созданных в нем объектов.Объект может реагировать на определенное событие (event),происходящее в процессе работы приложения и влияющее наобъект.
Совокупность событий, на которые объект способен реагировать, определяется создателем класса, экземпляром которогоявляется данный объект. Реакцией объекта на произошедшее событие может быть выполнение им некоторых заданных действий —специальной процедуры, которая называется процедурой обработки события. Любому событию объекта может быть назначенанекоторая процедура его обработки.96Семейство (collection) — упорядоченный набор однотипныхобъектов, т.е. экземпляров одного класса. Семейство тоже является объектом, и одним из методов этого объекта является процедура, возвращающая ссылку на конкретный объект в семействе.
Одним из свойств семейства является число объектов, хранящихсяв нем.Объектная модель (object model) — совокупность взаимосвязанных объектов, описывающих программную систему.В VBA определены специальные объектные модели для каждого компонента семейства Microsoft Office и объектные модели,общие для всех компонентов Microsoft Office. С помощью объектных моделей, определенных в YBA, осуществляется управлениеприложениями Microsoft Office.В базе данных Microsoft Access могут храниться такие объекты,как таблицы, запросы, формы, отчеты, макросы и модули, а также ссылки на объекты — страницы доступа к данным. В проектеMicrosoft Access могут храниться такие объекты, как формы, отчеты, макросы и модули, ссылки на страницы доступа к данным,а также ссылки на объекты, хранящиеся в базе данных на SQLсервере (таблицы, представления, диаграммы базы данных и хранимые процедуры).