- •Программирование в среде Microsoft Office 2000
- •1. Основные сведения о vba
- •1.2. Макрорекордер в Office 2000
- •2.Основные сведения о программировании на vba
- •2.1. Алфавит и лексика языка vba
- •2.2.Правила записи текста программы на vba.
- •2.4. Данные в vba
- •2.4.1. Типы данных в vba
- •Т ипы данных в vba
- •Встроенные типы данных показаны в таблице 2.1.
- •2.4.2.Объявление переменных и констант простых типов
- •2.4.3. Массивы
- •2.5.Использование стандартных диалоговых окон для организации ввода-вывода данных
- •2.5.1.Функция MsgBox
- •2.5.2.Функция InputBox
- •2.6. Управляющие конструкции vba
- •2.6.1.Условный оператор if
- •2.6.2.Оператор выбора Select Case
- •2.6.3.Оператор цикла For … Next
- •2.6.4.Оператор цикла While…Wend
- •2.6.5.Оператор цикла Do…Loop
- •2.6.6. Оператор перехода GoTo
- •2.7. Основные сведения об объектах
- •2.7.1.Основные понятия объектно-ориентированного программирования.
- •2.7.2. Особенности использования объектов.
- •2.7.3. Коллекции в vba
- •2.7.4. Объект Application
- •2.7.5. Объекты Range и Selection
- •2.7.6. Оператор With для операций с одним объектом.
- •2.8.Обработка ошибок
- •3.Программирование в приложениях ms Office 2000.
- •3.1.Объекты excel, их свойства и методы.
- •3.1.1. Объектная модель excel
- •3.1.2. Коллекция Workbooks
- •3.1.3. Объект Workbook
- •3.1.4.Объект Worksheet
- •3.1.5.Объект Chart
- •3.1.6.Объекты Range и Selection
- •3.1.7. Пример решения задачи в excel на основе построения vba-кода.
- •3.2. Объекты word, их свойства и методы.
- •3.2.1. Модель объектов word
- •3.2.2.Объект Appication
- •3.2.3. Объект Document
- •3.2.4. Классы, задающие структуризацию текста документа.
- •3.2.5. Классы, составляющие части документа
- •3.2.5.1. Объект Range
- •3.2.5.2. Объект Selection
- •3.2.6. Классы, представляющие структуру документа
- •3.3. Автоматизация работы в Access на основе использования Access vba
- •3.3.1. Средства автоматизации работы в Access.
- •3.3.2. Объектная модель Microsoft Access
- •3.3.3.Особенности программирования в Access vba
- •3.3.3.1. Модель программирования Access
- •3.3.3.2. Особенности работы с объектами в Access vba.
- •3.3.4. Манипулирование в Access объектами Application
- •3.3.5. Объекты доступа к данным
- •3.3.5.1. Объекты dao
- •3.3.5.2. Объекты ado
- •3.3.6. Использование объектов доступа к данным в Access
- •3.3.6.1. Соединение с текущей базой данных
- •3.3.6.2. Открытие базы данных
- •3.3.6.3. Создание базы данных
- •3.3.6.4. Выполнение операций с записями
- •3.3.6.5. Перемещение по набору записей
- •3.3.6.6. Поиск записей в объектах Recordset
- •3.3.7. Пример решения задачи в Access на основе построения vba-кода
- •3.4.Совместная работа приложений Microsoft Office 2000
- •4.Список рекомендуемой литературы
3.3.6. Использование объектов доступа к данным в Access
Процедура VBA работает с объектами доступа к данным с помощью
двух фундаментальных операций:
- чтения/изменения характеристик;
- выполнения методов объектов для манипулирования ими.
Перед каждой из этих операций необходимо применить ссылку на объект.
В одном приложении можно применять объекты DAO и ADO, поэтому при объявлении переменных нужно указывать объектную модель, которая будет использована. Это связано с тем, чть одни и те же имена объектов встречаются и в той и в другой модели, например:
Dim xz As DAO.Recordset
Dim yz As ADO.Recordset
Если имя объектной модели не указано, то по умолчанию используется та библиотека, которая встречается раньше в списке ссылок.
3.3.6.1. Соединение с текущей базой данных
Чтобы работать с данными в базе данных, сначала надо выполнить соединение с этой базой данных, т.е. получить на нее ссылку. В модели DAO это будет ссылка на объект Database, а в модели ADO – на объект Connection.
DAO
При запуске Access Jet автоматически создает в памяти новый представляющий его объект DBEngine. Это временный объект, который прекращает свое существование сразу же после выхода из Access. Jet создает в памяти заданный по умолчанию объект Workspace, который также является временным. При открытии существующей базы данных Jet создает в оперативной памяти объект Database, представляющий эту базу данных. для ссылки на объект базы данных можно использовать объект DBEngine(0)(0) или метод CurrentDb объекта Application:
Dim db As Database
Set db=DBEngine(0)(0)
Set db= CurrentDb
Метод CurrentDb позволяет создать несколько объектных переменных, которые ссылаются на разные копии одной и тойже базы данных, и с которыми можно работать независимо, что позволяет избежать конфликтов в многопользовательских приложениях.
ADO
Для соединения с текущей базой данных используется свойство Connection объекта CurrentProject:
Dim cnDB As ADODB.Connection
Set cnDB = CurrentProject.Connection
3.3.6.2. Открытие базы данных
При программировании на VBA можно одновременно открывать несколько баз данных.
DAO
Для соединения с базой данных, отличной от той, которая открыта в окне базы данных, можно использовать метод OpenDatabase. Этот метод имеют два объекта: Workspace и DBEngine.
Если использовать метод OpenDatabase объекта Workspace,то база данных будет открыта в указанной рабочей области. Если использовать метод OpenDatabase объекта DBEngine, то база данных будет открыта в рабочей области, используемой по умолчанию. Этот метод возвращает ссылку на созданный объект Database и имеет следующий синтаксис:
Set объектная_переменная = workspace.OpenDatabase(dbname, options, read-only, connect)
Обязательным является только параметр dbname- строковое выражение, задающее имя существующего файла базы данных.
workspace - необязательная ссылка на объект Workspace, содержащий базу данных,
options - устанавливает различные параметры для БД,
read-only - имеет значение True, если БД должна открываться только по чтению, и False, если она открывается с доступом по чтению/записи.
connect - строковое выражение для спецификации информации о подключении (пароли).
Jet при вызове метода OpenDatabase открывает базу данных и автоматически добавляет ее к совокупности Databases.
Пример соединения с базой данных Кадры.mdb:
Dim ws As Workspace
Dim db As Database
Set ws=DBEngine.Workspaces(0)
Set db=ws.OpenDatabase (“Кадры.mdb”)
……………………………………………
db.Close
Set db=Nothing
Set ws=Nothing
ADO
Для открыттия базы данных Access используется метод Open объекта
Connection. При этом нужно обязательно перед открытием этого объекта установить свойство Provider, указывающее, какой провайдер OLE DB будет использован для соединения с источником данных.
Пример:
Dim cn As ADODB.Connection
Set cn=New ADODB.Connection
With cn
.Provider=”Microsoft.Jet.OLEDB.4.0”
.Open “Кадры.mdb”
End With
…………………………………………………………………..
cn.Close
Set cn=Nothing