Option Compare Database
Option Explicit
'++++++++++++++++++++++++++++++++++++++++++++
'トランザクション処理
'++++++++++++++++++++++++++++++++++++++++++++
Private Sub コマンド0_Click()
On Error GoTo err_handle
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.Connection
'■トランザクション開始
cnn.BeginTrans
'〜DML操作(INSERT,DELETE,UPDATE)の実行 START〜
Dim rs As New ADODB.Recordset
rs.Open "select * from tbl_Hoge", cnn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs.Fields("hoge") = 1
rs.Fields("hogehoge") = "hogehoge"
rs.Update
'〜DML操作(INSERT,DELETE,UPDATE)の実行 END〜
'■コミット(DML操作確定、トランザクション終了)
cnn.CommitTrans
'●後処理
exit_handle:
If rs.State = adStateOpen Then rs.Close
If cnn.State = adStateOpen Then cnn.Close
Exit Sub
'●エラー時の処理
err_handle:
'■ロールバック(DML操作取消、トランザクション終了)
cnn.RollbackTrans
MsgBox Err.Description
Resume exit_handle
End Sub