Создание кода VBA с помощью мастеров элементов управления.
Одним из эффективных способов использования VBA является привязка кода к кнопкам, добавляемым в форму с помощью мастеров элементов управления. Чтобы добавить кнопку с фрагментом кода, а затем просмотреть код, необходимо выполнить следующее:
1. Открыть какую-либо БД, в которой есть таблица.
2. Выбрать таблицу и выполнить щелчок на кнопке Автоформа стандартной панели инструментов. Для таблицы будет создана форма по умолчанию.
3. Сохранить созданную форму, выполнив щелчок на кнопке закрытия окна, а затем на запрос о сохранении ответить утвердительно и ввести имя созданной формы или оставить предложенное для сохранения имя формы.
4. Выбрать вкладку Формы. Выбрать созданную форму.
5. Выполнить щелчок по кнопке Конструктор, для переключения в режим конструктора формы.
6. Выбрать команду Вид -> Панель элементов, если панель элементов не отображена на экране.
7. Проверить, активизированы ли мастера элементов управления (т.е. нажата ли кнопка Мастера).
8. Выполнить щелчок на элементе Кнопка.
9. Выполнить щелчок на свободном месте формы, чтобы вставить в нее кнопку. Откроется диалоговое окно мастера кнопок, показанное на рисунке .
10. В списке Категории выбрать пункт Переходы по записям, а затем в списке Действия -> Поиск записи. После щелчка на кнопке Готово в форму будет добавлена кнопка, выполняющая поиск.
11. Выполнить щелчок на элементе Кнопка.
12. Вставить кнопку на свободном месте формы ниже предыдущей, созданной ранее. Снова откроется окно кнопок.
13. В списке Категории выбрать пункт Работа с формой, а в списке Действия - пункт Закрытие формы. После щелчка по кнопке Готово в форму будет добавлена кнопка, выполняющая закрытие формы.
14. Сохранить форму, выбрав команду Файл -> Сохранить. После этого можно запустить форму и проверить работу добавленных кнопок.
15. Переключиться в режим Констуктора, выполнив щелчок по кнопке Конструктор.
16. Выбрать команду Вид -> Программа или выполнить щелчок по кнопке Программа на панели инструментов. Откроется окно редактора Visual Basic for Applications, представленное на рисунке.
В этом окне можно видеть три фрагмента программы на языке VBA: раздел объявлений (в верхней части окна), который содержит код, относящийся ко всей форме в целом, а также два раздела кода, привязанных к двум кнопкам.
Первый раздел начинается с заголовка процедуры:
Private Sub Кнопка13_Click( )
Заканчивается процедура оператором: End Sub. Операторы, заключенные между ними, выполняются после щелчка по кнопке Найти. Основная часть работы выполняется следующим оператором:
DoCmd.DoMenuItem acFormBar, AcEditMenu, 10, AcMenuVer70
Этот оператор выполняет те же действия, что и команда меню Правка -> Найти, т.е. выводит на экран диалоговое окно Поиск в поле, с помощью которого можно выполнить поиск.
Открыв модуль VBA, его можно редактировать как текст в любом текстовом редакторе. В окне редактора Visual Basic в код можно вставить текст из другого файла. Для этого выбрать команду Вставка -> Файл, а в открывшемся диалоговом окне выбрать нужный файл и выполнить щелчок по кнопке ОК.
Модули на языке Visual Basic можно выводить на печать. Для этого следует открыть модуль и выбрать команду Файл -> Печать.
Модули.
Структурным элементом программы, написанной на языке VBA, является модуль - совокупность объявлений и процедур, объединенных в единое целое. В ACCESS 97 модули трех типов: стандартные модули, модули формы и модули отчетов. В отличие от стандартного модуля, который создается таким же образом, как и любой другой объект БД, и может выполнять практически любые вычисления, модули форм и отчетов разрабатываются для обработки событий, связанных с элементами формы или отчета.
Каждый модуль состоит из области описания и одной или нескольких процедур. Процедура представляет собой последовательность операторов, которые часто называют программными кодами. Входящие в модуль процедуры объединены общей областью описания. В ней описываются данные и объекты, которые являются общепринятыми для процедур модуля. Иерархия указанных объектов такова:
· база данных;
· модуль;
· область описания;
· процедура;
· код;
· оператор.
Процедуры делятся на две категории: процедуры-подпрограммы (подпрограммы) и процедуры-функции (функции).
Процедура-подпрограмма активизируется при обращении к ней по имени, вследствие чего выполняется определенная последовательность операторов (инструкций). Подпрограмму используют, например, для задания свойства формы или заполнения списка значениями, полученными в результате вычислений.
Процедура-функция после выполнения возвращает некоторое значение, которое можно применять в операторах и выражениях в качестве переменной. Например, функции могут возвращать значение, используемое по умолчанию для некоторого поля, или вычислять сложный критерий в рамках запроса. В модуль можно включать любое количество функций и подпрограмм.
Процедуры.
Процедурой называется целостная структурная единица кода на языке VBA. Каждая процедура состоит из операторов, в которых применяются встроенные в ACCESS 97 функции, методы и свойства, которые предназначены для выполнения каких-либо операций над данными. Например, к свойству Click кнопки Найти приведенного ранее примера привязана следующая процедура:
Private Sub Command6_Click ( )
On Error GoTo Err_Command6_Click
Screen.PreviosControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit Command6_Click:
Exit Sub
Err_Command6_Click:
MsgBox Err.Descrition
Resume Exit_Command6_Click
End Sub
Для обращения к перечисленным объектам, а также для обозначения операторов используются ключевые слова, которые записываются с прописной буквы (например, Function).
Теоретически каждая процедура может быть вызвана из любого модуля, а функция - из таких объектов, как форма, запрос или отчет. Наряду с общедоступными процедурами (Public), которыми являются все процедуры по умолчанию, существуют локальные, или личные процедуры (Private), доступные только в том модуле, в котором они описаны.
Для передачи значений из вызывающих операторов в вызываемые процедуры служат аргументы. С помощью аргументов ведется контроль за выполнением процедуры, устанавливается способ получения результата, определяются параметры вычислений и т.д.