Программа 16.9. Синхронизация записи изменений в источнике данных
Программа 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