Открытие
источника данных
Доступ к текущей базе данных осуществляется с помощью объекта типа Database, возвращаемого методом CurrentDb объекта Application (который представляет приложение Access). Метод CurrentDb входит в набор глобальных методов, поэтому для его вызова можно использовать сокращенную ссылку без префикса Application с точкой (программа 16.3).
Открыть существующую базу данных можно двумя способами:
-
с помощью метода OpenDatabase
объекта Workspace. В этом случае база данных будет открыта в заданной рабочей
области;
-
с помощью метода OpenDatabase
объекта DBEngine. В этом случае база данных будет открыта в рабочей области,
используемой по умолчанию.
Таблица
16.3.
Параметры метода OpenDatabase
Параметр
|
Тип
|
Обязательный или нет |
Описание
|
||
<имя>
|
String
|
Обязательный |
Имя файла существующей
базы
|
||
|
|
данных (возможно,
включая полный
|
|||
|
|
путь с указанием
имени диска или
|
|||
|
|
сетевого ресурса)
или имя источни-
|
|||
|
|
ка данных ODBC
(DSN)
|
|||
<параметры>
|
Variant
|
Необязательный |
Используется
для задания специаль-
|
||
|
|
ных параметров
базы данных. Напри-
|
|||
|
|
мер, в рабочей
области Jet применяет-
|
|||
|
|
ся значение True,
если нужно открыть
|
|||
|
|
базу данных в
режиме монопольного
|
|||
|
|
доступа, или
значение False, если
|
|||
|
|
нужно открыть
базу данных в режиме
|
|||
|
|
общего доступа.
Значение False
|
|||
|
|
устанавливается
по умолчанию. Пара-
|
|||
|
|
метры, используемые
в рабочей об-
|
|||
|
|
ласти ODBCDirect,
описаны в справоч-
|
|||
|
|
ной системе Access
|
|||
<режим>
|
Variant
|
Необязательный |
Задается значение
True, если нуж-
|
||
|
(подтип
|
но открыть базу
данных только для
|
|||
|
Boolean)
|
чтения, или значение
False, если
|
|||
|
|
нужно открыть
базу данных для чте-
|
|||
|
|
ния и записи.
По умолчанию исполь-
|
|||
|
|
зуется значение
False
|
|||
<соединение>
|
Variant
|
Необязательный |
Строка соединения
(connection
|
||
|
(подтип
|
string). Используется
для указания
|
|||
|
String)
|
параметров соединения
с источни-
|
|||
|
|
ком данных, включая
пароль
|
|||
Метод 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. | ||
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. Открытие таблицы в текущей базе данных
' Получаем доступ к текущей базе данных: Set db = CurrentDb
' Открываем таблицу сообщений для игрока (это связанная таблица): Set rs = db.OpenRecordset("Сообщения", dbOpenDynaset)
' Код использования таблицы ... .
rs.Close ' Закрыли таблицу
Set rs = Nothing ' Очистили объектные переменные
Set db = Nothing
Назад | Начало | Вперед |