Мониста все записи автора
В колонках играет - Madu - Не верюНастроение сейчас - ***VBA - это полноценный язык программирования, который используется в различных Модулях БД.
Существует 2 типа модулей:
1. Модули БД (их еще называют стандартными модулями). Они располагаются на вкладке "Модули" в окне базы данных.
2. Модули Форм и Отчетов (модули класса). Эти модули могут быть у любой формы или отчета.
В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом, а также часто используемые процедуры, которые могут быть запущены из любого места базы данных.
Модули форм и модули отчетов являются модулями класса, связанными с определенной формой или отчетом. Они часто содержат процедуры обработки событий, запускаемых в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением формы или отчета и их откликом на события, например, такие как нажатие кнопки и мн. др. При создании первой процедуры обработки события для формы или отчета автоматически создается связанный с ней модуль формы или отчета. Для просмотра модуля для формы или отчета достаточно нажать кнопку Программа на панели
Открыть модуль формы
инструментов в режиме конструктора или прямо в окне базы данных выделив необходимую форму или отчет. В процедурах модулей форм и отчетов могут содержаться вызовы процедур, имеющихся в стандартных модулях.
В языке Visual Basic для приложений (VBA) замкнутыми программными единицами являются процедуры. Процедура содержит набор инструкций и методов, с помощью которых выполняются действия или рассчитывается значение. Например, в следующей процедуре обработки события метод OpenForm открывает форму «Заказы»:
Private Sub ОткрытиеФормыЗаказы_Click()
DoCmd.OpenForm "Заказы"
End Sub
Существуют процедуры двух типов:
· Процедура-подпрограмма Sub, аналогично инструкциям Visual Basic, выполняет действие или набор действий, но не возвращает значение. Пользователь имеет возможность создавать процедуры Sub самостоятельно или использовать процедуры обработки событий, определенные в Microsoft Access.
Каждая форма или отчет в базе данных имеют встроенный модуль формы или модуль отчета содержащий встроенные процедуры обработки событий, которые выполняются в ответ на события, возникающие в форме или отчете и в элементах управления в форме или отчете. После того как Microsoft Access определит, что событие возникло в форме, отчете или в элементе управления, автоматически запускается процедура обработки события, имя которой образуется как комбинация имен объекта и события. Например, процедура обработки события позволяет открыть другую форму при нажатии кнопки в форме.
· Процедура-функция Function (часто такие процедуры называют просто функциями) возвращает значение, например, полученное в результате расчетов. Visual Basic включает ряд встроенных функций; например, функция Now возвращает текущее значение даты и времени. В дополнение к встроенным функциям, пользователь имеет возможность самостоятельно создавать функции, которые называют специальными функциями.
Функции, возвращающие значения, могут использоваться в выражениях. Выражения, содержащие функции, широко используются в Microsoft Access, например, в аргументах инструкций или в методов Visual Basic, при указании значений свойств и при определении условий в запросах или фильтрах.
Ниже приводится пример процедуры Function с именем «НачалоСледующегоМесяца», которая возвращает дату первого дня следующего месяца:
Function НачалоСледующегоМесяца()
НачалоСледующегоМесяца = _
DateSerial(Year(Now), Month(Now) + 1, 1)
End Function
Данная функция состоит из единственной инструкции присвоения, в которой результат выражения (стоящего справа от знака равенства [=]) присваивается функции «НачалоСледующегоМесяца» (имя которой стоит слева от знака равенства). Результат рассчитывается с помощью встроенных функций Visual Basic DateSerial, Year, Now и Month.
После создания функции ее можно использовать в Microsoft Access в любых выражениях. Например, чтобы сделать дату первого дня следующего месяца значением, которое поле получает по умолчанию, следует в окне свойств определить свойство этого поля Значение по умолчанию (DefaultValue) с помощью следующего выражения:
=НачалоСледующегоМесяца()
Так же процедуры Sub и Function могут принимать аргументы.
Этой информации должно хватить для того что бы уйти с головой в изучение VBA. А на поcледок приведу очень ценный совет, который наверняка помог в свое время многим в MS Access:
При создании объекта (например при вставке кнопки в форму и др.) с помощью мастера часто автоматически создаются процедуры обработки событий для данного объекта. Для того чтобы понять, как они работают, полезно изучить их.
Так же можно перевести все макросы в VBA-код с помощью пункта меню "Сервис"-"Макрос"-"Преобразовать макросы"