Программирование в ACCESS 2000

Страницы работы

34 страницы (Word-файл)

Содержание работы

Введение

В этом уроке вы должны научиться использовать объектные модели доступа к данным. Для этого возьмем типовые задачи, которые приходится решать в процессе разработки приложения. Поскольку в Access 2002 можно использовать две объектные модели для доступа к данным — ОАО и ADO, — мы будем рассматривать примеры параллельно и в той и в другой модели.

ПРИМЕЧАНИЕПри описании синтаксиса методов употребляются русские термины для аргументов  методов ОАО и английские в моделиADO. Это связано с тем, что при использовании методовADO, как правило, применяют именованные аргументы, и имена аргументов должны совпадать с терминами, используемыми при описании синтаксиса.

Чтобы работать с данными в базе данных, нужно сначала выполнить соединение с этой базой данных, то есть получить на нее ссылку. В модели DAO это будет ссылка на объект Database, а в модели ADO — на объект Connection. А когда ссылка получена, можно обращаться к семействам и объектам этой базы данных. Поэтому начнем рассматривать операции с данными со способов установки соединения с базами данных.

Соединение с текущей базой данных

В объектной модели DAO возможны два способа установки ссылки на текущую базу данных:

Dim db As Database

Set db = DBEngine.Workspaces(0).Databases(0)

Это означает, что текущая база данных является первым объектом в семействе Databases рабочей области по умолчанию.

ВНИМАНИЕ Семейство Workspaces содержит все объекты Workspace, соответствующие открытым рабочим областям. Приложение Access может одновременно использовать любую комбинацию рабочих областей Jet и ODBCDirect а значит, и множество одновременно действующих сеансов. При первом обращении приложения Access к любому объекту ОАО автоматически создается объект Workspace — DBEngine.Workspaces(O), который является рабочей областью по умолчанию

Семейство Workspaces является стандартным для объекта DBEngine, а семейство Databases — стандартным для объекта Workspace, поэтому по правилам синтаксиса языка вместо полной ссылки, приведенной выше, можно использовать сокращенную: DBEngine(0)(0).

Dim db As Database

Set db = CurrentDB

В данном случае применяется метод CurrentDB объекта Application. Метод CurrentDb входит в набор глобальных методов, поэтому для его вызова можно использовать сокращенную ссылку без префикса Application с точкой. Оба способа можно использовать в программах VBA, но нужно знать различие между ними. В первом случае возвращается ссылка на открытый экземпляр текущей базы данных, а во втором — создается новый экземпляр этой базы данных.

ПРИМЕЧАНИЕ Метод CurrentDB позволяет создать несколько объектных переменных; которые ссылаются на разные копии одной и той же базы данных и с которыми можно работать независимо, что позволяет избежать конфликтов в многопользовательских приложениях.

В объектной модели ADO, чтобы получить доступ к данным в текущей базе данных, используется объект CurrentProject модели объектов Access. Этот объект создается автоматически, когда открывается файл базы данных, и имеет свойство Connection, которое и содержит всю необходимую информацию для осуществления доступа к данным:

Dim cnnDB As ADODB.Connection

Set  cnnDB = CurrentProject.Connection

Сначала должна быть объявлена переменная, которая ссылается на объект Connection библиотеки ADODB. Затем этой переменной присваивается значение.

ВНИМАНИЕ      Если в одном приложении используются объекты и ОАО и ADO, нужно при объявлении объектных переменных указывать объектную модель, которая будет использована. Это связано с тем, что одни и те же имена объектов встречаются и в той и в другой модели, например Connection, Recordset. Если имя объектной модели не указано, по умолчанию используется та библиотека, которая встречается раньше в списке ссылок.

Открытие базы данных, отличной от текущей

Для работы с базой данных, отличной от текущей, то есть той, которая открыта в окне базы данных, используется метод OpenDatabase. Этот метод имеют два объекта объектной модели DAO: Workspace и DBEngine.

Если применить метод OpenDatabase объекта Workspace, база данных будет открыта в указанной рабочей области. Если применить метод OpenDatabase объекта^

Метод OpenDatabase возвращает ссылку на объект Database и имеет следующий синтаксис:

Set <переменная> = <объект>.ОреnDatabaseе(<имяФайла>, [<списокПараметров>], [<режим>], [<соединение>]),

где <переменная> — имя переменной, которая является ссылкой на объект Database; <объект> — объект Workspace или DBEngine. По умолчанию (когда объект явно не упоминается) используется метод объекта DBEngine.

Метод имеет один обязательный аргумент — имя файла существующей базы данных. Остальные аргументы являются необязательными. Например, аргумент <режим> используется для открытия базы данных только для чтения (значение True) или для чтения и записи (значение False). Аргумент <соединение> — для указания параметров соединения с источником данных, в том числе пароля. В листинге 5.1 приводится пример открытия базы данных Библиотека.mdb.

Похожие материалы

Информация о работе