Введение. Простейшие задачи, требующие для организации функционирования множества объектов приложения Microsoft Access
Простейшие задачи, требующие для организации функционирования множества объектов приложения Microsoft Access, можно решить с помощью макросов. Однако для этих целей чаще используется язык VBA.
Чтобы научиться программированию на этом языке, нужно понять две важные концепции:
- язык VBA является объектно-ориентированным языком;
- модель программирования в Access является событийно управляемой.
Объектно-ориентированное программирование является в настоящее время наиболее популярным, центральным понятием которого – объект: форма, отчет, таблица и т.д. При написании программ можно управлять этими объектами, устанавливая их свойства или вызывая методы, то есть функции, определяющие поведение объекта.
Событийно управляемая модель программирования означает, что нет необходимости создавать главную программу, затем структурировать ее, разбивая на подпрограммы. Вместо этого создаются процедуры, вызываемые при обработке событий, происходящих в процессе работы пользователя с приложением.
2.2. Модули Access
Модули являются объектами Access, такими же, как таблицы, запросы, формы и т.д.
Модуль — это набор подпрограмм и функций, написанных в VBA и собранных в одну программную единицу.
Существует два типа модулей: стандартные модули и модули класса. Стандартные модули содержат общие процедуры, которые могут использоваться: при обработке событий в различных объектах, для вычисления значений в формах, отчетах и т.д. Эти процедуры не связаны с конкретным объектом и могут использоваться другими приложениями Access.
Вторым типом модуля в Access является модуль класса. Модуль класса отличается от стандартного модуля тем, что кроме процедур он содержит описание объекта и используется для создания объектов. Процедуры, определенные в этом модуле, являются методами и свойствами объекта. Существует два типа модулей класса: базовые модули класса, модули форм и отчетов. Модули форм и отчетов связаны с соответствующими формами и отчетами и отличаются от базовых модулей лишь тем, что существуют в памяти только до тех пор, пока открыты связанные с ними форма или отчет.
Чтобы создать стандартный модуль или модуль класса, нужно: 1) выбрать команды Вставка® Модуль или Модуль класса, 2) создать необходимые процедуры , 3) сохранить модуль.
2.3. Классы и семейства
Объекты - это формы отчеты, таблицы в Access.
Класс – описание совокупности однотипных объектов. Объект представляет собой экземпляр определенного класса.
Свойство – отдельная характеристика объекта или класса, например, свойство формы Вывод на экран (Visible) может иметь значение True или False.
Метод – представляет собой процедуру (или функцию) объекта или класса. Например, объект Form имеет метод Refresh. Вызов этого метода позволяет обновить данные в форме.
Семейство – упорядоченный набор экземпляров одного класса.
2.4. Объектные модели Microsoft Office
В VBA определены объектные модели для каждого семейства Microsoft Office и объектные модели, общие для всех приложений. Каждое приложение Microsoft Office представляет собой объектные модели в виде библиотеки объектов, которая может быть использована другими приложениями:
- библиотека объектов Microsoft Access ( Microsoft Access Object Library 10.0);
- библиотека объектов доступа к данным (Microsoft DAO 3.6 Object Library);
- библиотека объектов ActiveX ( Microsoft ActiveX Data Objects 2.6 – ADO);
- библиотека объектов Visual Basic (Microsoft Visual Basic for Application);
- библиотека объектов Microsoft Office (Microsoft Office 10.0 Object Library.
2.5. Модели объектов Microsoft Access
Для того чтобы при программировании правильно использовать объекты, их свойства и методы, следует ознакомиться со структурой подчиненности объектов.
На верхнем уровне иерархии располагается объект Application, позволяющий дать информацию об исполняемом приложении. Application включает: семейства форм и отчетов (Forms, Reports), ссылок (References), модулей (Modules), метод Docmd и др.
Семейство форм и отчетов – это семейство открытых форм и отчетов. Он включают семейство элементов управления (Controls) и свойств (Properties).
Объект Docmd располагает методами, которые позволяют выполнить макрокоманды Access из программы VBA.
Обращение к объектам библиотек из процедур и функций Access осуществляется по установленным на них ссылкам. Список установленных ссылок можно просмотреть и изменить в окне, которое открывается командами Tools ® References в окне редактора VBA.
2.6. Модели объектов доступа к данным DAO и ADO
Стандарты DAO и ADO обеспечивают программиста похожим набором инструментов управления. DAO – это предыдущий, более ранний стандарт средств управления базой данных. Стандарт ADO представляет более мощные инструменты и его применение приводит к сокращению программного кода. Ниже представлены фрагменты листингов программного кода с библиотекой объектов доступа к данным DAO и ADO для решения одной и той же задачи – открытие записей таблицы Отдел в текущей базе данных.
__________________________________________________
Sub DAO_пример ()
Dim Db As Database
Dim Rs As DAO.Recordset
Set Db As CurrentDb()
Set Rs = DB.OpenRecordset(“Отдел”)
__________________________________________________
Sub ADO_пример ()
Dim Rs As New ADODB.Recordset
Rs.Open “Отдел”, CurrentProject.Connection, adOpenKeySet, _
adLockOptimistic
__________________________________________________
Пояснение записей в листингах:
Объект класса ADODB – это OLE-сервер. Его интерфейс может использоваться любой программой, написанной на VBA.
Connection – это блок информации, указывающий Access, как общаться с базой данных. Благодаря Connection можно общаться с базами данных, созданных фирмами Microsoft, MS-SQL Server, Oracle и др.
CurrentProject.Connection – указывает на текущую базу данных.
adOpenKeySet, adLockOptimistic - параметры, указывающие на тип курсора и тип блокировки соответственно.
Константы, которые показывают, в какой библиотеке они описаны имеют следующие префиксы: ac, db, ad, vb. Например, ac – библиотека Access и т.д.
2.7. Ссылки на объекты
Для обращения к объекту существует одно общее правило: нужно проследить путь в иерархии объектов, начиная с объектов самого верхнего уровня. Главным в иерархии объектов является объект Application. Он содержит ссылки на все остальные объекты и семейства объектов Microsoft Office (предоставляет к ним доступ). Объект Application представляет активное приложение Microsoft Access и содержит все методы и свойства, которые можно применять к активному приложению. Например, если нужно обратиться к форме, входящей в семейства Forms и имеющей название “Сотрудники”, следует написать следующее выражение:
Application.CurrentProject.Forms (“Сотрудники”)
Это выражение представляет собой ссылку на объект – форму «Сотрудники». Вместо этого выражения можно написать сокращенно:
Application.Forms (“Сотрудники”) или Forms! Сотрудники
Чтобы сослаться на элемент управления Код сотрудника в форме Сотрудники нужно записать
Forms! Сотрудники![Код сотрудника]
Здесь используются квадратные скобки, так как имя элемента управления имеет пробел.
Если форма Сотрудники открыта и является текущей, то ссылка на элемент управления [Код сотрудника] запишется так: Me![Код сотрудника]
2.8. Свойства и методы объектов
Каждый объект имеет свойства, которые являются его характеристиками, и методы, позволяющие управлять поведением этого объекта. Например, чтобы установить Свойство Value (Значение) элемента управления Цена формы Товары нужно записать:
Forms!Товары!Цена.Value = 345,25
Чтобы получить свойство, можно записать
S=Forms!Цена
Здесь переменной S присваивается значение свойства Value семейства Forms (Value при записи программы можно опускать).
Метод в VBA обозначается так же, как и свойство. Однако в отличие от свойств, методы могут иметь аргументы. Например, в следующем коде VBA применяется метод OpenForm объекта DoCmd :
DoCmd.OpenForm “Сотрудники”, acForm
Объект DoCmd – это специальный объект, который позволяет в программах VBA выполнять макрокоманды. Имя каждой макрокоманды является методом этого объекта.
2.9. Применение метода DoCmdв программах VBA
Дата добавления: 2015-05-19; просмотров: 874;