В 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.
Моделі об'єктів Microsoft Access
Для того, щоб при програмуванні правильно використовувати об'єкти, їхні властивості й методи, потрібно ознайомитися зі структурою підпорядкованості об'єктів.
На верхньому рівні ієрархії розташовується об'єкт Application, що дозволяє дати інформацію про додаток, що виконується. Application включає: сімейства форм і звітів (Forms, Reports ), посилань (References), модулів (Modules), метод Docmd і ін.
Сімейство форм і звітів – це сімейство відкритих форм і звітів. Воно включає сімейство елементів керування (Controls) і властивостей (Properties).
|
|
Об'єкт Docmd має у своєму розпорядженні методи, які дозволяють виконати макрокоманди Access із програми VBA.
Звертання до об'єктів бібліотек із процедур і функцій Access здійснюється за встановленими на них посиланнями. Список установлених посилань можна переглянути й змінити у вікні, що відкривається командами Tools ® References у вікні редактора VBA.
Моделі об'єктів доступу до даних 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 і т.д.
|
|
Посилання на об'єкти
Для звертання до об'єкта існує одне загальне правило: потрібно простежити шлях в ієрархії об'єктів, починаючи з об'єктів самого верхнього рівня. Головним в ієрархії об'єктів є об'єкт Application. Він містить посилання на всі інші об'єкти й сімейства об'єктів Microsoft Office (надає до них доступ). Об'єкт Application представляє активний додаток Microsoft Access і містить всі методи й властивості, які можна застосовувати до активного додатка. Наприклад, якщо потрібно звернутися до форми, що входить у сімейства Forms і має назву “ Співробітники ”, потрібно написати наступний вираз: