Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MVBA_2000.DOC
Скачиваний:
13
Добавлен:
08.11.2019
Размер:
599.55 Кб
Скачать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]