- •Иллюстрированный самоучитель по 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.9. Синхронизация записи изменений в источнике данных
' Послать сообщение подключенному игроку
Public Sub SendMessage(message As String, playerName As String) .
' Объявления локальных объектных переменных:
Dim db As Database
Dim rs As Recordset
Dim counter As Integer
' Определяем собственную обработку ошибок:
On Error GoTo errHandler
Set db = CurrentDb
' Открываем таблицу сообщений для игрока:
Set rs = db.OpenRecordset("Сообщения", dbOpenDynaset)
On Error GoTo 0
' Добавляем сообщение в таблицу сообщений клиента:
rs.AddNew
rs!ИмяИгрока = playerName
rs!Сообщение = message
' Обработка ошибок, возникающих при совместном доступе
' к источнику данных:
On Error GoTo tryAgain
rs.Update
On Error GoTo 0
rs.Bookmark = rs.LastModified
' Закрываем открытые объекты:
closeAHHandler:
rs.Close
endHandler:
' Очищаем объектные переменные, т. к. они больше не используются:
Set rs = Nothing
Set db = Nothing
' Завершаем работу:
Exit Sub
' Синхронизация: tryAgain:
counter = counter + 1 If counter < 400 Then
doPause 5 Resume
End If
Обработка ошибок: errHandler:
Dim errMsg As String
errMsg = "Ошибка: " & Err.Number & vbCrLf & _
"Источник: " & Err.Source & vbCrLf & _ vbCrLf & Err.Description
MsgBox errMsg, vbCritical, ERR_TITLE Resume endHandler
End Sub
Программа 16.10. Сделать паузу на заданное количество секунд в работе приложения
Public Sub doPause(seconds As Integer)
Dim var_timeStart, var_timeCurrent
Dim ftimeOut As Boolean
var_timeStart = Time() ' Время начала паузы Do
' Передать управление другим процессам операционной системы
DoEvents
var_timeCurrent = Time() ' Текущее системное время
ftimeOut = _
CDate(var timeCurrent - var timeStart) >=
CDate(TimeSerial(0, 0, seconds))
Loop Until ftimeOut End Sub
Выполнение транзакций
Транзакцией называется операция обмена данными между клиентом и сервером. Методы объекта Workspace, использующиеся для выполнения транзакций, представлены в табл. 16.7.
Таблица 16.7. Методы объекта Workspace для выполнения транзакций
  | 
		
  | 
		
  | 
		
  | 
	
  | 
		Метод  | 
		Описание  | 
		
  | 
	
  | 
		BeginTrans  | 
		Обозначает начало транзакции. Транзакции могут быть вложенными  | 
		
  | 
	
  | 
		CommitTrans  | 
		Обозначает конец транзакции. В этот момент все изменения сохраняются в источнике без возможности их отмены  | 
		
  | 
	
  | 
		RollBack  | 
		Завершение транзакции и отмена результата ее выполнения. Записи в источнике возвращаются в прежнее состояние, отмеченное командой BeginTrans  | 
		
  | 
	
Все базы данных, открытые в рабочей области, имеют общую область действия транзакций. Это значит, что действие методов BeginTrans, CommitTrans и RollBack объекта Workspace распространяется на все базы данных в семействе Databases объекта Workspace.
Рассмотрим пример программы на VBA с использованием механизма выполнения транзакций (программа 16.11). В приложении "Игра в доминирование" механизм транзакций не используется.
