Модули,
в отличие от макросов, являются более тонким и мощным средством
создания программных расширений в среде Access, максимально
приближающимся по своим функциональным возможностям к таким
профессиональным инструментам, как Delphi, Visual Basic или Power
Builder. Одновременно применение модулей требует от пользователя
навыков и квалификации программиста, а также знания основных принципов
объектно-ориентированного программирования.
Для
программирования в Access используется процедурный язык Visual Basic
для приложений (VBA- Visual Basic for Applications) с добавлением
объектных расширений и элементов SQL. Сам процесс создания программных
расширений в среде Access предполагает активное использование
технологии объектно-ориентшрованного программирования (ООП). В основе
ООП лежит идея "упакованной функциональности", в соответствии с которой
программа строится из фундаментальных сущностей, называемых объектами.
Каждый из объектов характеризуется набором свойств (англ, -property) и
операций, которые он может выполнять (англ,- method). Реализация
взаимодействий между объектами ложится на исполняющую cpеду того
средства разработки, на котором пишется программа, и поэтому работа
программиста в рамках технологии ООП сводится к созданию объектов,
описанию их свойств и реакций на те иди иные внешние события.
Фундаментальным
понятием ООП является класс. Класс - это шаблон, на основе которого
может быть создан конкретный программный объект. Созданный объект в
таком случае становится экземпляром класса. К основополагающим
принципам ООП относятся:
- инкапсуляция
- объединение свойств и действий, присущих объекту, в едином пакете и
сокрытие подробностей их реализации от окружающего мира. Это означает,
что пользовательский доступ к объекту допускается только через его
свойства и методы
- наследование -
предусматривает создание новых классов на базе существующих, что дает
возможность классу-потомку иметь (наследовать) все свойства
класса-родителя
- полиморфизм - (от греч.
"многоликость") означает, что порожденные объекты обладают информацией
о том, какие методы они должны использовать в зависимости от того, где
они находятся в цепочке наследования
- модульность
- объекты заключают в себе полное определение их характеристик, никакие
определения методов и свойств объекта не должны располагаться вне его,
что делает возможным свободное копирование и внедрение одного объекта в
другие
Многие программные объекты в
Access совпадают с физическими объектами базы данных, такими как
таблицы, формы, отчеты. Для названия составных объектов, которые
включают в себя совокупность более простых объектов, используется
термин семейство. Например, объект отчет входит в семейство отчеты.
Помимо "видимых" объектов существует и большое количество "скрытых"
объектов, управлять которыми можно только из программных приложений.
В
Access существуют два типа модулей: стандартные и модули класса.
Стандартные модули содержат процедуры и функции, которые могут быть
вызваны из любого окна базы данных. Как правило, такие модули содержат
программный код универсального характера, предназначенный для
применения в различных местах текущего приложения или даже в различных
приложениях.
Модули
класса используются, для создания новых классов объектов. При создании
конкретного объекта, являющегося экземпляром такого класса, любые
процедуры, определенные в модуле, становятся свойствами и методами
этого объекта.
Модули форм и модули отчетов
являются модулями класса, связанными с определенной формой или отчетом.
Заметим, что в ранних версиях Access они являлись единственно возможным
инструментом объектно-ориентированного программирования. Эти модули
содержат процедуры обработки событий, запускаемых в ответ на их
возникновение в форме или отчете. Процедуры обработки событий
используются для управления поведением формы или отчета и их откликом
на события, например такие, как нажатие кнопки.
Важнейшей
областью применения объектно-ориентированного программирования в Access
является программирование доступа к данным. Для решения данной задачи
фирмой Microsoft был разработан специальный интерфейс - DАО (Data Access Objects).
DAO
- это набор объектных классов, которые моделируют структуру реляционной
базы данных. Они обеспечивают свойства и методы, которые позволяют
выполнять такие операции, как создание базы данных, определение таблиц
и индексов, задание связей между таблицами, формирование запросов и
отчетов и т. п. Существенным достоинством объектной модели DAO является
ее универсальный характер: она доступна для большинства средств
разработки программного обеспечения, поддерживаемых Microsoft, в
частности, для Visual Basic. Классы объектов доступа к данным
организованы по иерархической схеме. На ее вершине находится объект
DbEngine, представляющий собой ядро базы данных. Далее следуют объекты,
отвечающие за управление сеансами доступа пользователя к данным, -
Workspace (от англ, "рабочая область"). Каждая рабочая область включает
один или несколько объектов класса база данных - Database, а они, в
свою очередь, содержат семейства объектов таблиц (TableDef), запросов
(QueryDef), наборов записей (RecordSet) и т. д.
В
заключение раздела, посвященного модулям, отметим, что мы сознательно
не затрагиваем собственно вопросы теории и практики создания программ
на VBA в среде Access, так как они являются весьма обширными. В случае
необходимости читатели могут ознакомиться с ними в специальных
профессиональных изданиях и руководствах.