Одним из эффективных способов использования VBA является привязка кода к кнопкам, добавляемым в форму с помощью мастеров элементов управления. Чтобы добавить кнопку с фрагментом кода, а затем просмотреть код, необходимо выполнить следующее:
1. Открыть какую-либо БД, в которой есть таблица.
2. Выбрать таблицу и выполнить щелчок на кнопке Автоформа стандартной панели инструментов. Для таблицы будет создана форма по умолчанию.
3. Сохранить созданную форму, выполнив щелчок на кнопке закрытия окна, а затем на запрос о сохранении ответить утвердительно и ввести имя созданной формы или оставить предложенное для сохранения имя формы.
5. Выполнить щелчок по кнопке Конструктор, для переключения в режим конструктора формы.
6. Выбрать команду Вид Ø Панель элементов, если панель элементов не отображена на экране.
7. Проверить, активизированы ли мастера элементов управления (т.е. нажата ли кнопка Мастера).
8. Выполнить щелчок на элементе Кнопка.
9. Выполнить щелчок на свободном месте формы, чтобы вставить в нее кнопку. Откроется диалоговое окно мастера кнопок, показанное на рис. 9.1.
10. В списке Категории выбрать пункт Переходы по записям, а затем в списке Действия Ø Поиск записи. После щелчка на кнопке Готовов форму будет добавлена кнопка, выполняющая поиск.
11. Выполнить щелчок на элементе Кнопка.
12. Вставить кнопку на свободном месте формы ниже предыдущей, созданной ранее. Снова откроется окно кнопок.
13. В списке Категориивыбрать пункт Работа с формой, а в списке Действия — пункт Закрытие формы. После щелчка по кнопке Готово в форму будет добавлена кнопка, выполняющая закрытие формы.
Рис. 9.1. Окно создания кнопки
14. Сохранить форму, выбрав команду Файл Ø Сохранить. После этого можно запустить форму и проверить работу добавленных кнопок.
15. Переключиться в режим Конструктора, выполнив щелчок по кнопке Конструктор.
16. Выбрать команду Вид Ø Программа или выполнить щелчок по кнопке Программа на панели инструментов. Откроется окно редактора Visual Basic for Applications, представленное на рис. 9.2.
В этом окне можно видеть три фрагмента программы на языке VBA: раздел объявлений (в верхней части окна), который содержит код, относящийся ко всей форме в целом, а также два раздела кода, привязанных к двум кнопкам.
Первый раздел начинается с заголовка процедуры:
Private Sub Кнопка13_Click( )
Заканчивается процедура оператором: End Sub. Операторы, заключенные между ними, выполняются после щелчка по кнопке Найти. Основная часть работы выполняется следующим оператором:
Этот оператор выполняет те же действия, что и команда меню Правка Ø Найти, т.е. выводит на экран диалоговое окно Поиск в поле, с помощью которого можно выполнить поиск.
Открыв модуль VBA, его можно редактировать как текст в любом текстовом редакторе. В окне редактора Visual Basic в код можно вставить текст из другого файла. Для этого выбрать команду Вставка Ø Файл, а в открывшемся диалоговом окне выбрать нужный файл и выполнить щелчок по кнопке ОК.
Модули на языке Visual Basic можно выводить на печать. Для этого следует открыть модуль и выбрать команду Файл Ø Печать.
Модули
Структурным элементом программы, написанной на языке VBA, является модуль — совокупность объявлений и процедур, объединенных в единое целое. В ACCESS 97 модули трех типов: стандартные модули, модули формы и модули отчетов. В отличие от стандартного модуля, который создается таким же образом, как и любой другой объект БД, и может выполнять практически любые вычисления, модули форм и отчетов разрабатываются для обработки событий, связанных с элементами формы или отчета.
Каждый модуль состоит из области описания и одной или нескольких процедур. Процедура представляет собой последовательность операторов, которые часто называют программными кодами. Входящие в модуль процедуры объединены общей областью описания. В ней описываются данные и объекты, которые являются общепринятыми для процедур модуля. Иерархия указанных объектов такова:
· база данных;
· модуль;
· область описания;
· процедура;
· код;
· оператор.
Рис. 9.2. Окно редактора VBA
Процедуры делятся на две категории: процедуры-подпрограммы (подпрограммы) и процедуры-функции (функции).
Процедура-подпрограмма активизируется при обращении к ней по имени, вследствие чего выполняется определенная последовательность операторов (инструкций). Подпрограмму используют, например, для задания свойства формы или заполнения списка значениями, полученными в результате вычислений.
Процедура-функция после выполнения возвращает некоторое значение, которое можно применять в операторах и выражениях в качестве переменной. Например, функции могут возвращать значение, используемое по умолчанию для некоторого поля, или вычислять сложный критерий в рамках запроса. В модуль можно включать любое количество функций и подпрограмм.