Microsoft Access 掲示板

VBAでSQL更新 / 8

16 コメント
views
4 フォロー
8
'非連結フォーム[S_1]のフォームモジュール
Option Compare Database
Option Explicit

Private Const SourceTableName As String = "T_1"

'コマンドボタン[cmdUpdate]の[クリック時]イベント
Private Sub cmdUpdate_Click()
On Error GoTo Err_cmdUpdate_Click

    '入力チェック処理を実行し、その結果が False だった場合
    If InputCheck() = False Then
        'このプロシージャを抜ける
        Exit Sub
    End If

    Dim lngResult As VbMsgBoxResult

    '実行確認ダイアログを表示し、どのボタンがクリックされたかを受け取る
    lngResult = MsgBox("レコードの更新を実行しますか?", _
                        vbQuestion + vbYesNo + vbDefaultButton2, _
                        "実行確認")

    '[いいえ]ボタンがクリックされた場合
    If lngResult = vbNo Then
        'このプロシージャを抜ける
        Exit Sub
    End If

    Dim strSQL As String

    'UPDATE 文の生成処理を実行し、その結果を変数 strSQL に渡す
    strSQL = CreateUpdateStatement()

    '生成に失敗した場合
    If strSQL = "" Then
        'このプロシージャを抜ける
        Exit Sub
    End If

    Debug.Print strSQL

    DoCmd.SetWarnings False
    'SQL 文の実行
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True

    MsgBox "レコードが更新されました。", _
           vbInformation, _
           "実行完了"

'終了処理
Exit_cmdUpdate_Click:
On Error Resume Next

    DoCmd.SetWarnings True

    Exit Sub

'エラー時処理
Err_cmdUpdate_Click:

    Dim strErrTitle As String
    Dim strErrMsg As String

    strErrTitle = "実行時エラー (" & Me.Name & ".cmdUpdate_Click)"
    strErrMsg = Err.Number & ": " & Err.Description

    Debug.Print strErrTitle
    Debug.Print strErrMsg

    MsgBox strErrMsg, vbCritical, strErrTitle

    Resume Exit_cmdUpdate_Click
End Sub
通報 ...