Программированиеформ и отчетов Access 2003

RSS, Twitter, Vkontakte, Facebook

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

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

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

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

Рассмотрим программирование форм и отчетов БД Access 2003 с помощью VBA. Формы и отчеты - это основные документы (объекты) БД Access для интерактивного взаимодействия с БД. Объекты характеризуются свойствами, методами и событиями. Все формы и отчеты, которые хранятся в БД Access 2003, относятся к коллекциям: AllForms и AllReports. Доступ к коллекциям программных модулей AllForms и AllReports предоставляют объекты CurrentProject и CodeProject.

Кроме коллекций AllForms и AllReports в БД Access входят коллекции Forms и Reports. В коллекции Forms и Reports объединяются все формы и отчеты, которые в данный момент открыты (загружены в оперативную память). Эти коллекции входят в объект Application приложения Access. Объект Application находится на вершине иерархии объектной модели Access.

Для обращения к объекту (например, к форме "Студенты" БД Access 2003) надо в соответствии с иерархией объектов Access записать путь к требуемому объекту, состоящий из последовательности имен объектов и коллекций, отделяя их друг от друга точкой. Ссылка на форму "Студенты" БД Access 2003, которая входит в состав коллекции AllForms, имеет следующий вид:
Application.CurrentProject.AllForms ("Студенты").


В этой ссылке объект Application можно опустить, так как объект CurrentProject является глобальным объектом. Известно, что при обращении к глобальному объекту объекты более высокого уровня можно опустить. В результате ссылка на объект примет следующий вид: CurrentProject.AllForms ("Студенты").


Для работы с объектами Access необходимо использовать объектные переменные. Объектная переменная - это переменная, которая ссылается на объект. Вначале надо объявить имя переменной для этого объекта, а затем, используя оператор Set, связать переменную с объектом. Для работы с формой или отчетом можно воспользоваться одним из универсальных объектов AccessObject или Object. Например, информацию обо всех формах в БД Access 2003 можно получить, выполнив процедуру MySt (). Скриншот программного кода данной процедуры представлен на рисунке 1.

Программирование форм и отчетов БД Access 2003 с помощью VBA
Рис. 1.

В процедуре MySt () связь объектной переменной с экземпляром объекта разорвана, так как объектной переменной установлено значение Nothing. Для данной процедуры связывать переменную с объектом необязательно, но переменную можно связать с объектом Form, например,
Set frm = CurrentProject.AllForms (Form).

Необходимо отметить, что формы и отчеты БД Access кардинально отличаются от форм и отчетов Word и Excel, которые создаются и открываются программно. Формы и отчеты в Access создаются из окна БД средствами (мастерами и конструкторами) визуального проектирования форм и отчетов. Формы создаются из набора отдельных элементов управления, они легко помещаются на форму в режиме конструктора.

При необходимости формы, отчеты и элементы управления для форм в БД Access можно создавать и программным способом. Для этого надо воспользоваться методом CreateControl объекта Application. Но чаще всего программы на языке Visual Basic (модули) создают для автоматизации действий над объектами (кнопками, текстовыми полями, переключателями и т.д.) в формах и отчетах.

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

Формы и отчеты БД Access обычно открываются вручную из окна базы данных в режиме макета или конструктора. Но если требуется открыть форму программным способом, то целесообразно использовать метод OpenForm объекта DoCmd. Объект DoCmd предназначен для запуска макроса из процедуры на языке Visual Basic.

DoCmd - это объект, который не имеет свойств, но имеет множество методов (OpenForm, OpenTable, Close, Save, OpenReport и т.д.), которые выполняют различные действия (макродействия) над объектами. На рисунке 2 представлен скриншот окна просмотра Object Browser, в котором отображается объект DoCmd и его методы.

Object Browser, в котором отображается объект DoCmd и его методы
Рис. 2.

Объект DoCmd позволяет выполнять макросы (макрокоманды или макродействия) с помощью процедуры на VB. Инструкция DoCmd имеет следующий формат: DoCmd макрокоманда аргументы. Если, например, необходимо открыть форму "Студенты" в табличном представлении, то можно использовать метод OpenForm объекта DoCmd со значением аргумента acFormDS (рисунок 3).

Метод OpenForm объекта DoCmd со значением аргумента acFormDS
Рис. 3.

В результате выполнения данной процедуры в окне БД Access откроется форма "Студенты" в табличном представлении. Для того чтобы программно открыть отчет "Автоотчет_лент_студ" в режиме предварительного просмотра, можно использовать метод OpenReport объекта DoCmd со значением аргумента acViewPreview (рисунок 4).

Метод OpenReport объекта DoCmd со значением аргумента acViewPreview
Рис. 4.

В результате выполнения данной процедуры в окне БД Access откроется отчет "Автоотчет_лент_студ" в режиме предварительного просмотра.


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