Открытие источника данных

Чтобы открыть базу данных, используйте существующий объект Database или создайте новый. Объект Database представляет собой базу данных Jet (файл MDB), базу данных ISAM или источник данных ODBC, подключенный через Jet.

Доступ к текущей базе данных осуществляется с помощью объекта типа Database, возвращаемого методом CurrentDb объекта Application (который представляет приложение Access). Метод CurrentDb входит в набор глобальных методов, поэтому для его вызова можно использовать сокращенную ссылку без префикса Application с точкой (программа 16.3).

Открыть существующую базу данных можно двумя способами:

Метод OpenDatabase объекта DBEngine входит в набор глобальных методов, поэтому при использовании сокращенной ссылки на этот метод без явного указания объекта (DBEngine или Workspace) используется метод объекта DBEngine. Метод OpenDatabase возвращает ссылку на созданный объект Database и имеет следующие параметры (табл. 16.3): Database OpenDatabase(<имя>, <параметры>, <режим>, <соединение>)

Таблица 16.3. Параметры метода OpenDatabase

Параметр

Тип

Обязательный или нет

Описание

<имя>

String

Обязательный

Имя файла существующей базы



 

данных (возможно, включая полный



 

путь с указанием имени диска или



 

сетевого ресурса) или имя источни-



 

ка данных ODBC (DSN)

<параметры>

Variant

Необязательный

Используется для задания специаль-



 

ных параметров базы данных. Напри-



 

мер, в рабочей области Jet применяет-



 

ся значение True, если нужно открыть



 

базу данных в режиме монопольного



 

доступа, или значение False, если



 

нужно открыть базу данных в режиме



 

общего доступа. Значение False



 

устанавливается по умолчанию. Пара-



 

метры, используемые в рабочей об-



 

ласти ODBCDirect, описаны в справоч-



 

ной системе Access

<режим>

Variant

Необязательный

Задается значение True, если нуж-


(подтип

 

но открыть базу данных только для


Boolean)

 

чтения, или значение False, если



 

нужно открыть базу данных для чте-



 

ния и записи. По умолчанию исполь-



 

зуется значение False

<соединение>

Variant

Необязательный

Строка соединения (connection


(подтип

 

string). Используется для указания


String)

 

параметров соединения с источни-



 

ком данных, включая пароль

Аналогично создать и открыть новую базу данных можно: D с помощью метода CreateDatabase объекта Workspace; П с помощью метода CreateDatabase объекта DBEngine. Глобальным является метод CreateDatabase объекта DBEngine.

Метод CreateDatabase создает новый объект Database, добавляет его в семейство Databases открытых баз данных в рабочей области, сохраняет базу данных на диске и возвращает открытый объект Database. Этот метод используется только в рабочей области ядра Microsoft Jet. Метод CreateDatabase имеет следующие параметры (табл. 16.4):

Database CreateDatabase (<имя>, <порядок>, <параметры>)

Замечание

В программе на VBA для ссылки на метод CreateDatabase объекта DBEngine можно использовать сокращенную ссылку или указать префикс DBEngine с точкой. А для ссылки на метод объекта Workspace необходимо указать конкретную рабочую область, например:

' Использование метода объекта DBEngine:

Set dbl = CreateDatabase(...)

Set db2 = DBEngine.CreateDatabase(...)

' Использование метода объекта Workspace:

Set db3 = Workspaces(0).CreateDatabase(...)

Таблица 16.4. Параметры метода CreateDatabase

Параметр

Тип Обязательный или нет

Описание

<порядок> Variant

Обязательный

Строковое выражение, опреде-(подтип ляющее порядок символов, кото-String) рый будет использоваться в операциях сравнения и сортировки в создаваемой базе данных. Допускается также создание пароля для нового объекта Database путем слияния строки пароля (начинающейся с символов ";pwd=") с константой в аргументе <порядок>, например:

DbLangCyrillic & " ; р\»го>=МойПароль "

<параметры> <константы> Необязательный Константа или комбинация констант, которая определяет один или несколько параметров: версию формата данных и режим шифрования или дешифрования базы данных во время сжатия. Константы приведены в справке Access
<имя> String Обязательный Имя файла создаваемой базы данных. Следует указать полный путь и имя файла, например "С: \dbl .mdb" или "\\serverl\sharel\dirl\dbl". Если пользователь не указывает расширение имени, автоматически добавляется расширение mdb. Данный метод позволяет создавать только файлы mdb.

Чтобы получить доступ к данным в открытой одним из перечисленных способов базе данных, необходимо открыть набор записей. Набор записей может представлять собой все записи таблицы или часть записей таблицы, удовлетворяющих указанному условию, или результат выборки из нескольких таблиц. Чтобы открыть набор записей в базе данных, используйте метод OpenRecordset объекта Database (см. программу 16.3). Этот метод возвращает ссылку на созданный объект Recordset и имеет следующие параметры (табл. 16.5):

Recordset OpenRecordset(<источник>,<тип>, <параметры>, <блокировки>)

Замечание

С помощью метода OpenRecordset в базе данных можно открыть связанную таблицу (точно так же, как и таблицу, хранящуюся в базе данных), указав ее имя.

Таблица 16.5. Параметры метода OpenRecordset

Параметр

Тип Обязательный или нет

Описание

<источник>

   

String Обязательный Источник записей для нового


   

объекта Recordset. В качестве


   

источника записей можно ука-


   

зать имя таблицы или запроса, а


   

также инструкцию SQL, которая


   

возвращает записи

<тип>

<константа> Необязательный

Константа, указывающая тип от-


   

крываемого объекта Recordset.


   

Эти константы приведены в


   

табл. 16.6

<параметры>

<константы> Необязательный

Произвольная комбинация определенных констант, задающих


   

характеристики нового объекта


   

Recordset. Эти константы при-


   

ведены в справочной системе


   

Access

<блокировки>

<константа> Необязательный

Константа, определяющая тип


   

блокировки объекта Recordset.


   

Возможные константы перечис-


   

лены в справке Access

Таблица 16.6. Константы, определяющие тип набора записей

Константа

Тип набора записей

DbOpenTable


Открытие табличного обьекта Recordset (только в рабочей области ядра Microsoft Jet)

DbOpenDynaset Открытие объекта Recordset типа динамического набора записей, аналогичного указателю ключевого набора записей ODBC
DbOpenDynamic Открытие обьекта Recordset динамического типа, аналогичного динамическому указателю ODBC (только в рабочей области ODBCDirect)

 

Константа

Тип набора записей

DbOpenSnapshot

Открытие объекта Recordset типа статического набора записей, аналогичного указателю статического набора записей ODBC

DbOpenforwardOnly Открытие объекта Recordset типа статического набора записей с последовательным доступом

Далее приведен пример открытия таблицы, взятый из программного кода сервера приложения "Игра в доминирование" (программа 16.3).

Программа 16.3. Открытие таблицы в текущей базе данных

Dim db As Database

Dim rs As Recordset

' Получаем доступ к текущей базе данных:

Set db = CurrentDb

' Открываем таблицу сообщений для игрока (это связанная таблица):

Set rs = db.OpenRecordset("Сообщения", dbOpenDynaset)

' Код использования таблицы ... .

rs.Close ' Закрыли таблицу

Set rs = Nothing ' Очистили объектные переменные

Set db = Nothing