トランザクション処理を行う
- トランザクション処理を開始する
- BEGIN TRANSACTION
- 変更を反映し、トランザクション処理を終了する
- COMMIT TRANSACTION
- ロールバック処理を行う
- ROLLBACK TRANSACTION
Sub トランザクション1_SQL() Dim myCon As New ADODB.Connection Dim myFile As String, myCmdTxt1 As String, myCmdTxt2 As String myFile = ThisWorkbook.Path & "\mdb\4-sampleDB.mdb" myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & myFile '2つの処理をまとめてトランザクション処理を行う myCmdTxt1 = "UPDATE SQLトランザクション1_アルバイト SET 手当 = 手当 + 555;" myCmdTxt2 = "UPDATE SQLトランザクション1_アルバイト SET 勤務時間 = 0;" On Error GoTo Trans_Err 'エラートラップ With myCon .Execute "BEGIN TRANSACTION" '<--*トランザクション処理スタート .Execute myCmdTxt1 '<--1つ目の処理を実行 .Execute myCmdTxt2 '<--2つ目の処理を実行 .Execute "COMMIT TRANSACTION" '<--ここで、変更をまとめて書き込む End With myCon.Close: Set myCon = Nothing Exit Sub Trans_Err: 'エラー時の処理 MsgBox "エラーが発生しました。変更を破棄して終了します。" '変更を破棄し、トランザクション処理前の状態に戻す myCon.Execute "ROLLBACK TRANSACTION" myCon.Close: Set myCon = Nothing End Sub
上記はこちらのサンプルをSQLに置き換えたものである。
↓