Программа 16.11. Применение механизма транзакций
Sub ResetCount ()
Dim ws As Workspace
Dim db As Database
Dim rs As Recordset
Dim flnTrans As Boolean
On Error GoTo errHandler ;..
flnTrans = False ' Транзакция еще не началась
Set ws = DBEngine.Workspaces(0)
Set db = CurrentDb
Set rs = db.OpenRecordset("Игроки", dbOpenTable)
ws.BeginTrans ' Начало транзакции
flnTrans = True ' ' Транзакция началась
rs.MoveFirst
Do Until rs.EOF
rs.Edit
rs!Счет = 0
rs.Update
rs.MoveNext
Loop If
MsgBox("Сохранить сделанные изменения?", _
vbQuestion + vbYesNo, "Вопрос") = vbYes Then
ws.CommitTrans ' Сохранить изменения Else
ws.Rollback ' Отменить изменения
End If
exitHandle: rs.Close
Set db = Nothing
Set ws = Nothing
Exit Sub errHandler:
MsgBox "Ошибка!"
' Если ошибка возникла в процессе выполнения транзакции,
'
отменяем сделанные изменения
If flnTrans Then
ws.Rollback
End If
Resume exitHandle
End Sub
CompEbook.ru Железо, дизайн, обучение и другие