- •Иллюстрированный самоучитель по Access 2002
- •Глава 1. Общие сведения о Microsoft Access 2002
- •Базы данных как средство хранения и обработки информации
- •Запуск Access и открытие баз данных
- •Создание новой базы данных
- •Рабочая среда Access
- •Использование справочной системы
- •Вызов окна справки
- •Глава 2 .
- •Основные режимы работы с таблицами
- •Создание таблиц
- •Определение полей
- •Свойства полей таблицы
- •Использование Мастера подстановок
- •Форматы отображения данных
- •Примеры:
- •Определение маски ввода
- •Вставка, удаление и переименование полей таблицы
- •Вод и проверка данных
- •Изменение внешнего вида таблицы
- •Сортировка данных в таблице
- •Поиск и замена данных
- •Фильтрация данных
- •Часть III.
- •Способы совместного использования баз данных
- •Пример сетевого приложения
- •Организация совместного доступа к данным и объектам
- •Организация обмена данными между компонентами сетевого приложения
- •Создание и использование рабочей области
- •Программа 16.1. Использование рабочей области Jet, открытой по умолчанию
- •Программа 16.2. Создание рабочей области Jet
- •Открытие источника данных
- •Программа 16.3. Открытие таблицы в текущей базе данных
- •Программное изменение структуры и схемы данных
- •Программа 16.4. Удаление и создание таблицы с помощью инструкций ddl
- •Программа 16.5. Изменение структуры таблицы с помощью интерфейса dао
- •Выполнение операций с данными
- •Программа 16.6. Добавление записи в таблицу
- •Программа 16.7. Изменение текущей записи в таблице
- •Программа 16.8. Удаление текущей записи в таблице
- •Программная синхронизация доступа к данным
- •Программа 16.9. Синхронизация записи изменений в источнике данных
- •Программа 16.10. Сделать паузу на заданное количество секунд в работе приложения
- •Выполнение транзакций
- •Программа 16.11. Применение механизма транзакций
- •Защита сетевого приложения Access
- •Защита базы данных на уровне пользователей
- •Рава доступа в приложении "Игра в доминирование"
- •Часть IV. Приложения
- •Правила игры в доминирование
- •Архитектура приложения
- •Функциональное описание приложения
- •Интерфейс пользователя
- •Установка сетевого приложения "Игра в доминирование"
- •Параметры защиты приложения "Игра в доминирование"
Программа 16.1. Использование рабочей области Jet, открытой по умолчанию
Dim ws As Workspace
Dim db As Database
Set ws = DBEngine.Workspaces(0)
' Выбрали рабочую область
' Открываем базу данных:
Set db = ws.OpenDatabase ("DominationGameServer.mdb")
' Код использования базы данных ...
db.Close ' Закрыли базу данных
Set db = Nothing
' Очистили объектную переменную
' (!) Плохой код:
' рабочая область, открытая по умолчанию, будет закрыта
' ws.Close
' Set ws = Nothing
Программа 16.2. Создание рабочей области Jet
Dim ws As Workspace
Dim db As Database
' Создаем рабочую область:
Set ws = CreateWorkspace("", "Флинт", "пиастры", dbUseJet)
' Открываем базу данных:
Set db = ws.OpenDatabase("DominationGameServer.mdb")
' Код использования базы данных ...
db.Close ' Закрыли базу данных
ws. Close "' : ' ' Закрыли рабочую область
Set db = Nothing " ' Очищаем объектные
Set ws = Nothing ' переменные
Открытие источника данных
Чтобы открыть базу данных, используйте существующий объект Database или создайте новый. Объект Database представляет собой базу данных Jet (файл MDB), базу данных ISAM или источник данных ODBC, подключенный через Jet.
Доступ к текущей базе данных осуществляется с помощью объекта типа Database, возвращаемого методом CurrentDb объекта Application (который представляет приложение Access). Метод CurrentDb входит в набор глобальных методов, поэтому для его вызова можно использовать сокращенную ссылку без префикса Application с точкой (программа 16.3).
Открыть существующую базу данных можно двумя способами:
с помощью метода OpenDatabase объекта Workspace. В этом случае база данных будет открыта в заданной рабочей области;
с помощью метода OpenDatabase объекта DBEngine. В этом случае база данных будет открыта в рабочей области, используемой по умолчанию.
Метод 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).