Средства макропрограммирования в MS Access
В ответ на определенные действия пользователя могут выполняться процедуры обработки событий, например, нажатие на некоторую кнопку формы может инициировать автоматическое создание новой таблицы определенной структуры. Основной набор средств MS Access, рассмотренный выше, ориентирован на пользователей, не владеющих языками программирования. Пользователи, знакомые с языками программирования, могут использовать макросы и модули (процедуры на языке Visual Basic for Application, VBA). С их помощью можно существенно расширить функциональные возможности создаваемого приложения и настроить его на нужды конечных пользователей.
В MS Word и MS Excel имеется средство автоматической записи макросов – макрорекордер. После включения записи макроса можно создать процедуру, выполнив необходимые действия и остановив запись макроса. Все действия пользователя, выполненные между включением и выключением записи макроса, преобразуются в текст процедуры VBA. Этот текст затем можно просмотреть и отредактировать с помощью редактора VBA. Выполнение записанной процедуры равносильно повторению действий пользователя. В MS Access средств автоматической записи макросов нет. Автоматическая генерация кода VBA происходит только при создании объектов в режиме мастера.
Макрос в MS Access представляет собой структуру, состоящую из одной или нескольких макрокоманд СУБД Access, которые выполняются либо последовательно, либо в порядке, определенном некоторыми заданными в макросе условиями. С помощью макросов можно выполнить практически все действия с объектами MS Access. Основное назначение макросов – это создание интерфейса приложения. С помощью макросов можно расположить на экране меню и панели инструментов, удобные для приложения.
Макросы легко создавать – для этого не нужно изучать синтаксис языка программирования, а достаточно знать лишь основные приемы работы в MS Access. Однако использование макросов имеет и некоторые недостатки, а именно: возможности макрокоманд ограничены по сравнению с возможностями языка VBA; процедуры VBA выполняются быстрее; макросы являются объектами, существующими отдельно от форм и отчетов, в которых они используются, и поэтому при увеличении количества макросов их поддержка становится достаточно трудоемкой. Тем не менее, во многих случаях использование макросов вполне оправдано, т. к. это существенно упрощает и ускоряет разработку приложения. С помощью макросов можно создавать небольшие однопользовательские приложения, однако если скорость работы приложения критична, лучше применять процедуры VBA.
Если количество макросов оказалось очень большим, можно объединить несколько макросов в группу макросов. Рекомендуется, например, все макросы, связанные с событиями в форме или отчете, объединять в группу макросов, соответствующую данной форме или отчету соответственно. При этом каждый макрос группы должен иметь свое имя, а имя объединенного объекта будет являться именем группы макросов.
Работа по созданию и запуску макросов выполняется так же, как и работа с любым объектом базы. Отличия определяются типом объекта. Макрос создается и редактируется в режиме конструктора. В окне конструктора выбирается макрокоманда из списка всех макрокоманд. Макрокоманды можно сгруппировать по категориям: работа с данными; выполнение; работа с объектами; импорт/экспорт данных и объектов, настройка интерфейса приложения. В категорию работы с данными входит набор макрокоманд, обеспечивающих отбор данных (фильтрация записей в формах и таблицах), перемещение по данным и элементам управления, а также обновление данных в активных формах, таблицах и запросах. К категории выполнения можно отнести выполнение команд, макросов, процедур или запросов, запуск другого приложения, прерывание выполнения и завершение работы в MS Access. Для настройки интерфейса можно вывести на экран или, наоборот, скрыть встроенную или пользовательскую панель инструментов, подать звуковой сигнал и т. п.
Наиболее обширная категория макрокоманд – это макрокоманды работы с объектами. MS Access состоит из нескольких компонентов, каждый из которых предоставляет собственный набор объектов, информация о которых содержится в библиотеках объектов. Например, библиотека объектов MS Access хранит информацию об объектах, предназначенных для отображения данных, для работы с приложением. В частности, это объекты формы или отчета. Макрокоманды для этих объектов позволяют в первую очередь выполнять копирование, переименование и сохранение объектов. Библиотека объектов DAO (Data Access Objects) предоставляет объекты доступа к данным, которые позволяют манипулировать данными из Visual Basic, т. е. управлять базами данных из любого приложения, поддерживающего VBA.
После выбора макрокоманды автоматически высвечивается список аргументов, который зависит от выбранной макрокоманды и может отсутствовать, если макрокоманда не имеет аргументов. В макросах используется последовательный порядок выполнения макрокоманд. Однако этот порядок может быть изменен при помощи условий выполнения или пропуска макрокоманд. Условия задаются в виде выражений в окне конструктора макросов после нажатия пиктограммы Условия на вкладке конструктора макросов.
Выполнение макроса инициируется нажатием на кнопку Выполнить .
Можно нажать кнопку Выполнить макрос , расположенную в группе Макрос вкладки Работа с базами данных. В этой группе расположены различные пиктограммы для работы с макросами и процедурами Visual Basic (рис.8.26).
Наиболее часто макросы используются в приложении MS Access для обработки событий объектов. События – это любые действия, распознаваемые объектом, которые происходят в результате манипуляций пользователя, выполнения инструкций VBA или генерируются системой. Примером события является вывод формы на экран или нажатие кнопки. Для каждого объекта базы определены свои собственные события, перечень которых расположен на вкладке События диалогового окна свойств объекта (рис.8.27).
Рис. 8.26.Группа Макрос вкладки Работа с базами данных
Рис. 8.27.События элемента Кнопка
Каждому событию можно назначить макрос или процедуру VBA, которые будут автоматически выполняться в ответ на произошедшее событие. Практически программирование в MS Access сводится к написанию макросов или процедур, обрабатывающих события, т. е. программируется реакция объектов на события.
В форме Звонки абонентов (рис.8.28) размещена дополнительная командная кнопка Добавить звонок (имя кнопки n_call), при нажатии на которую открывается форма Новый звонок в режиме добавления данных. При этом открытие формы сопровождается звуковым сигналом. Для выполнения перечисленных действий создан макрос new_call (рис.8.29) из двух макрокоманд – открытия формы и подачи сигнала. Аргументы макрокоманды Открыть форму указывают на имя открываемой формы Новый звонок и режим данных Добавление. Указанный макрос выполняется автоматически при возникновении события Нажатие кнопки (рис.8.27).
Нажатие на кнопку Новый звонок (рис.8.28) открывает ту же форму, но в режиме просмотра данных. Для добавления новой записи в этом случае необходимо перейти к последней записи формы.
Рис. 8.28.Модифицированная составная форма
Рис. 8.29.Макрос открытия формы
Дата добавления: 2015-02-25; просмотров: 1499;