Использование модулей в MS Access

Теперь, когда у вас уже есть небольшой опыт создания макроса, рассмотрим пример использования модуля в MS Access. Для создания модулей необходимо иметь первоначальные знания по языку программирования Visual Basic. Прежде чем приступить к созданию модуля, рассмотрим несколько ключевых понятий. В MS Access существуют два основных типа модулей: модули класса и стандартные модули. Каждая процедура в модуле может быть либо процедурой-функцией Function, либо процедурой-подпрограммой Sub.

Модули класса. Модули форм и модули отчетов являются модулями класса, связанными с определенной формой или отчетом. Они часто содержат процедуры обработки событий, запускаемые в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением формы или отчета и их откликом на события, такие, как нажатие кнопки.

При создании первой процедуры обработки события для формы или отчета автоматически создается связанный с ней модуль формы или отчета. Для просмотра модуля для формы или отчета достаточно нажать кнопку «Программа» на панели инструментов в режиме конструктора.

В процедурах модулей форм и отчетов могут содержаться вызовы процедур, добавленных в стандартные модули.

Стандартные модули. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом, а также часто используемые процедуры, которые могут быть запущены из любого окна базы данных.

Для просмотра списка стандартных модулей базы данных щелкните Модули в списке Объекты в окне базы данных. Формы, отчеты и стандартные модули выводятся также в окне просмотра объектов.

Процедуры: общие сведения

В языке Visual Basic замкнутыми программными единицами являются процедуры. Процедура содержит набор инструкций и методов, с помощью которых выполняются действия или рассчитывается значение. Например, в следующей процедуре обработки события метод OpenForm открывает форму «Заказы»:

Private Sub ОткрытиеФормыЗаказы_Сlick()

DoCmd.OpenForm «Заказы»

End Sub

Существуют процедуры двух типов: процедура-подпрограмма Sub и процедура-функция Function.

Процедура-подпрограмма Sub, аналогично инструкциям Visual Basic, выполняет действие или набор действий, но не возвращает значение. Пользователь имеет возможность создавать процедуры Sub самостоятельно или использовать процедуры обработки событий, определенные в Microsoft Access.

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

Примечание. При создании объекта с помощью мастера часто автоматически создаются процедуры обработки событий для данного объекта. Для того чтобы понять, как работают процедуры, полезно ознакомиться с такими процедурами, просмотрев их в окне редактора Visual Basic.

Процедура-функция Function (часто такие процедуры называют просто функциями) возвращает значение, например, полученное в результате расчетов. Visual Basic включает ряд встроенных функций; например, функция Now возвращает текущее значение даты и времени. Выражения, содержащие функции, широко используются в Microsoft Access, например, в аргументах инструкций или методах Visual Basic, при указании значений свойств и при определении условий в запросах или фильтрах. В дополнение к встроенным функциям пользователь имеет возможность самостоятельно создавать функции, которые называют специальными или пользовательскими функциями.

Ниже приводится пример процедуры Function с именем «НачалоСледующегоМесяца», которая возвращает дату первого дня следующего месяца: