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

Чтобы открыть базу данных, используйте существующий объект 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(<имя>, <параметры>, <режим>, <соединение>)

Параметр Тип Обязательный или нет Описание 
<имя> String Обязательный Имя файла существующей базы данных (возможно, включая полный путь с указанием имени диска или сетевого ресурса) или имя источника данных ODBC (DSN) 
<параметры> Variant Необязательный Используется для задания специальных параметров базы данных. Например, в рабочей области Jet применяется значение True, если нужно открыть базу данных в режиме монопольного доступа, или значение False, если нужно открыть базу данных в режиме общего доступа. Значение False устанавливается по умолчанию. Параметры, используемые в рабочей области ODBCDirect, описаны в справочной системе Access 
<режим> Variant (подтип Boolean) Необязательный Задается значение True, если нужно открыть базу данных только для чтения, или значение False, если нужно открыть базу данных для чтения и записи. По умолчанию используется значение False 
<соединение> Variant (подтип String) Необязательный Строка соединения (connection string). Используется для указания параметров соединения с источником данных, включая пароль 

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

Аналогично создать и открыть новую базу данных можно: 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(...) 

Параметр Тип Обязательный или нет Описание 
<порядок> Variant Обязательный Строковое выражение, опреде-(подтип ляющее порядок символов, кото-String) рый будет использоваться в операциях сравнения и сортировки в создаваемой базе данных. Допускается также создание пароля для нового объекта Database путем слияния строки пароля (начинающейся с символов ";pwd=") с константой в аргументе <порядок>, например: DbLangCyrillic & " ; р\»го>=МойПароль " 
<параметры> <константы> Необязательный Константа или комбинация констант, которая определяет один или несколько параметров: версию формата данных и режим шифрования или дешифрования базы данных во время сжатия. Константы приведены в справке Access 
<имя> String Обязательный Имя файла создаваемой базы данных. Следует указать полный путь и имя файла, например "С: \dbl .mdb" или "\\serverl\sharel\dirl\dbl". Если пользователь не указывает расширение имени, автоматически добавляется расширение mdb. Данный метод позволяет создавать только файлы mdb. 

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

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

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

Замечание

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

Параметр Тип Обязательный или нет Описание 
<источник>   String Обязательный Источник записей для нового объекта Recordset. В качестве источника записей можно указать имя таблицы или запроса, а также инструкцию SQL, которая возвращает записи. 
<тип> <константа> Необязательный Константа, указывающая тип открываемого объекта Recordset. Эти константы приведены в табл. 16.6.
<параметры> <константы> Необязательный Произвольная комбинация определенных констант, задающих характеристики нового объекта Recordset. Эти константы приведены в справочной системе Access.
<блокировки> <константа> Необязательный Константа, определяющая тип блокировки объекта Recordset. Возможные константы перечислены в справке Access.

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

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

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

Далее приведен пример открытия таблицы, взятый из программного кода сервера приложения "Игра в доминирование" (программа 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