Процедуры VBA обработки событий объектов Access

RSS, Twitter, Vkontakte, Facebook

Основы программирования VBA

Программирование VBA событий объектов в формах и отчетах

Автор: Владимир Ткаченко

Источник: Обучение в интернет

Как правило, формы и отчеты в Access создаются с помощью конструктора и мастера построения, т.е. без применения VBA. Но для автоматизации действий над объектами в формах и отчетах используются программы на языке VBA. Действия над объектами в формах и отчетах основаны на событиях объектов. Следует отметить, что созданные процедуры обработки событий объектов обычно хранятся в модулях форм или отчетов.

В качестве примера рассмотрим программирования действий над объектами в форме "Студенты" базы данных "Training_students_O_F". Создадим в этой форме поисковую систему с помощью текстового поля с именем "Образец" (надпись "Образец поиска") и кнопки "Поиск". То есть выполним поиск реквизитов студента в списке формы при вводе конкретной фамилии студента в текстовое поле "Свободный" под надписью "Образец поиска" и щелчке на кнопке "Поиск". Для этого откроем форму "Студенты" в режиме конструктор (рис 1).

Форма Студенты базы данных Access 2003 в режиме конструктор
Рис. 1.

Затем щелкнем на кнопке Поиск правой кнопкой мыши и в контекстном меню выберем команду "Свойства". Откроется диалоговое окно "Кнопка" перейдем на вкладку "События". Для события "Нажатие кнопки" выберем из раскрывающегося списка "Процедура обработки событий" и щелкаем на кнопке Построитель (кнопка с тремя точками). Откроется окно редактора VBA. В окне редактора кода будет отображаться первый и последний операторы процедуры обработки событий Click для кнопки Поиск (рис.2).

Операторы обработки событий Click в окне редактора VBA СУБД Access
Рис. 2.

Процедуру обработки событий или инструкцию VBA, которая должны быть заключена между этими операторами, мы можем написать непосредственно в окне редактора кода. Вначале запишем переход к текстовому полю "Фамилия", в котором будет выполняться поиск, т.е. применим метод SetFocus, который устанавливает фокус на элемент управления, вызвавший этот метод. Эта инструкция имеет следующий вид: Фамилия.SetFocus.

Для запуска действия "Найти запись" по "Образцу поиска" воспользуемся методом FindRecord объекта DoCmd. Эта инструкция может быть представлена в следующем виде: DoCmd.FindRecord Образец. В результате процедура обработки событий имеет следующий код, представленный на скриншоте редактора кода VBA, рис. 3.

Процедура обработки событий Click в окне редактора VBA СУБД Access
Рис. 3.

Данная процедура обработки события "Поиск_Click" (Нажатие кнопки) может применяться только внутри формы "Студенты". После создания процедуры обработки события нажатия кнопки (Поиск_Click) закрываем редактор кода и форму в режиме конструктора. Затем открываем форму "Студенты" в режиме формы, выполнив щелчок по кнопке Открыть. Вводим фамилию в текстовое поле под надписью "Образец поиска", например, Петрова и нажимаем кнопку Поиск. В строке "Фамилия" будет отображаться искомая фамилия Петрова, а в остальных полях все ее реквизиты.

Форма Студенты базы данных Access 2003 в режиме форма
Рис. 4.

Таким образом, на конкретном образце формы "Студенты" базы данных Access 2003 (Training_students_O_F) было рассмотрено, как реализуются программы на языке VBA для автоматизации действий над объектами формы.

Подпишитесь на мою рассылку СУБД MS Access 2003 -это просто!