トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 持続可能なスキーム編: 第30話「データ登録処理の完成!」4/4 :トランザクション処理の実装

やってみよう!Excel VBAで業務改善! 持続可能なスキーム編|第30話 「データ登録処理の完成!」

トランザクション処理の実装


  :
    On Error GoTo エラー
    
    If DB接続 Then
    :
        If num = "" Then
            If MsgBox("このデータを追加してもいいですか?", vbYesNo) = vbYes Then
                CN.BeginTrans
                :
                rs.Open "進捗TBL", CN, adOpenKeyset, adLockOptimistic
        :
                rs.Update
                
                CN.CommitTrans
                MsgBox "データを追加しました"
                Call データ取得
            End If
        Else
            MsgBox "このデータは追加できません"
        End If
    End If

    Exit Sub

エラー:
    CN.RollbackTrans
    MsgBox "追加に失敗しました データベースは更新されません"
    Call データ取得
End Sub

※赤字の部分が、修正・追加したコードです。

「うん、こんなところかな。
データ追加をユーザーが選択したら、"CN.BeginTrans"でトランザクション処理を開始する。
その後データを追加し、"rs.Update"で追加データをテーブルに反映したら、
"CN.CommitTrans"で変更を確定する。
……ここまででエラーが発生したら、行ラベル"エラー:"に処理が移り、
"CN.RollbackTrans"で変更を取り消す……と」

八木くんは、実装したコードを何度も見直すと、満足そうに大きくうなずきます。

「ようやく完成だ!
……明日は会社で、みんなにデータ登録処理をお披露目できるぞ!」

さすがに疲れたのか、八木くんはフーーッと肩で大きく息をしました。

第31話「Excelでクライアントサーバーシステム」に続きます
文・イラスト / 武藤 玄
ご意見やご感想の投稿はこちら

一覧にもどる