その頃マンションでは八木くんが、新しいコードを追加した
「データ編集」プロシージャを、身じろぎもせず見つめています。
Sub データ編集()
Dim rs As New ADODB.Recordset
Dim sql As String
Dim i As Long
On Error GoTo エラー
If DB接続 Then
CN.BeginTrans
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
:
:
Next
CN.CommitTrans
MsgBox "データを編集しました"
Call データ取得
End If
Exit Sub
エラー:
CN.RollbackTrans
MsgBox "編集に失敗しました データベースは更新されません"
Call データ取得
End Sub
※赤字の部分が、追加したコードです。
「よし!トランザクションの処理を追加したぞ。
まず、"CN.BeginTrans"でトランザクションの処理を開始する。
ADOでトランザクションを管理するには、Connectionオブジェクト…
ここでは変数CNに対して、トランザクションのメソッドを使うんだ」
八木くんが、ブツブツとひとり言をつぶやきます。
「問題なくテーブルが更新されれば、"CN.CommitTrans"でテーブルに対する変更を確定する。
逆に、何らかの理由で更新に失敗したときは、行ラベル"エラー:"に処理が移り、
"CN.RollbackTrans"でテーブルへの変更を取り消して、元に戻す」