Программа 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