· Включение программы в процедуру обработки события (например, программа запускается при щелчке по кнопке, находящейся в форме. Создание такой программы осуществляется следующим образом: в режиме конструктора форм отключают кнопку Мастера на панели элементов, затем создают кнопку (например, в области данных формы), открывают окно свойств созданной кнопки, выбирают вкладку События, выбирают событие Нажатие кнопки, щелкают по кнопке …,выбирают Программы, щелкают по кнопке ОК, при этом попадают в окно процедуры обработки события, где задают текст процедуры);
· Вызов процедуры-функции в выражении;
· Вызов процедуры в другой процедуре;
· Выполнение макрокоманды ЗапускПрограммы (RunCode) в макросе. Данная макрокоманда может вызывать встроенную функцию VBA или функцию, созданную пользователем. Для запуска процедуры Sub надо создать функцию, которая вызывает процедуру Sub, и с помощью макрокоманды ЗапускПрограмм (RunCode) вызвать эту функцию.
Function FFF()
FF()
End Function
Процедура состоит из последовательности инструкций:
методы, применяемые к объектам базы данных;
команды для управления последовательностью выполнения операций в программе;
встроенные функции Access.
Метод имеет формат:
<объект>.<метод>[[(]<список аргументов>[)]]
Список аргументов заключается в скобки, если метод должен возвратить значение.
Методы подразделяются на те, которые возвращают значения как функции, и на те, которые не возвращают значения, а только выполняют определенные действия как подпрограммы.
Пример метода, возвращающего значение:
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset (“Студенты”, dbOpenTable, ReadOnly)
Здесь метод OpenRecordset открывает таблицу с именем “Студенты” в текущей базе данных в режиме только для чтения как набор данных типа таблица. Объектом является текущая база данных CurrentDb(), представленная объектной переменной dbs. Метод возвращает значение, которое является ссылкой на открытую только для чтения таблицу. Инструкция Set присваивает это значение объектной переменной rst.
Примеры методов, не возвращающих значения.
Forms!Студенты![Номер_зачетки].SetFocus
Здесь метод SetFocus выполняется для объекта - поля Номер_зачетки в форме Студенты и переводит на него фокус. При этом аргументы отсутствуют.
DoCmd.Close acForm, “Студенты”
Здесь метод Close выполняется для объекта DoCmd, что позволяет запустить соответствующую макрокоманду. Аргументы acForm, “Студенты” указывают, что закрывается форма с именем “Студенты”. Этот метод не возвращает значение, поэтому аргументы не заключаются в скобки.
Примеры модулей
Пример 1. Поиск записи по ключу и замена не ключевых полей в таблице ПОСТАВКА.
'определение объектных переменных
Dim dbs As Database
Dim rst As Recordset
'определение полей для ввода ключей
Dim it As Integer
Dim dp As Date
Dim kp As Integer
'запись в dbs ссылки на текущую базу данных
Set dbs = CurrentDb()
'запись в rst ссылки на таблицу Поставка
Set rst = dbs.OpenRecordset("Поставка", dbOpenTable)
'задание индекса, построенного по ключу
rst.Index = "PrimaryKey"
'присвоение переменным значений, задаваемых
'пользователем в окне ввода
it = InputBox("Введите индекс товара", "Ввод параметров поиска")