オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

やってみよう!Excel VBAで業務改善!|持続可能なスキーム編

第10話「ADOでトランザクションを管理する」

第10話「ADOでトランザクションを管理する」

登場人物紹介

トランザクションの処理を追加

その頃マンションでは八木くんが、新しいコードを追加した
「データ編集」プロシージャを、身じろぎもせず見つめています。

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"でテーブルへの変更を取り消して、元に戻す」

一覧へ戻る

MENU