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