- •Иллюстрированный самоучитель по 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.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
Программное изменение структуры и схемы данных
Для изменения схемы данных создан язык определения данных (DDL, Data-Definition Language). Инструкции на языке DDL позволяют выполнять действия по изменению схемы данных и структуры объектов данных, например:
создавать и удалять таблицы;
добавлять и удалять из таблиц поля и индексы;
создавать и удалять связи между таблицами.
В интерфейсе DАО имеется набор специальных объектов, который является интерфейсом для доступа к средствам DDL. Таким образом, с помощью объектов DАО можно управлять структурой таблиц и схемой данных, не составляя самих инструкций на языке DDL.
Следующий пример программного кода (программа 16.4) взят из процедуры initGame сервера приложения "Игра в доминирование". Этот пример иллюстрирует использование инструкций на языке DDL для удаления таблицы со старой структурой и создания новой таблицы с заданной структурой. Аналогичные действия можно выполнить, пользуясь объектно-ориентированным интерфейсом DАО. Целью этой процедуры является изменение структуры таблицы "ПолеИгрок", поэтому, вообще говоря, можно было бы изменить набор полей этой таблицы с помощью инструкции DDL ALTER TABLE. Эта инструкция позволяет удалить или добавить в таблицу поле или составной индекс. Удаление и добавление полей в таблицу средствами DDL через интерфейс DАО представлено в программе 16.5.
Замечание
Необходимо помнить о том, что изменение структуры связанных таблиц запрещено. Поэтому в примере (программы 16.4 и 16.5) для доступа к таблице "ПолеИгрок" открывается база данных DominationGame.mdb, в которой сохранена эта таблица, а не используется текущая база данных DominationGameServer.mdb, в которой установлена связь с этой таблицей.
Программа 16.4. Удаление и создание таблицы с помощью инструкций ddl
Dim db As Database
Dim fieldSize As Long, i As Long
Dim strDDL As String
' Узнаем линейный размер игрового поля, выраженный в клетках
fieldSize = CLng(get_parameter("РазмерПоля"))
' Открываем базу данных, в которой хранится нужная таблица
Set db = OpenDatabase(CurrentProject.Path & "\DominationGame.mdb")
' Удалить старую таблицу "ПолеИгрок" strDDL = "DROP TABLE ПолеИгрок;"
' Если таблица не существует, удаление вызовет ошибку
On Error GoTo the_next_2
db.Execute strDDL the_next_2:
On Error GoTo 0
' Создать новую таблицу "ПолеИгрок"
strDDL = "CREATE TABLE ПолеИгрок ("
For i = 1 To fieldSize - 1
strDDL = strDDL & get_column_name(i) & " TEXT(20), "
Next i
strDDL = strDDL & get_column_name(fieldSize) & " TEXT(20) );"
db.Execute strDDL
' Прочие действия ... db.Close