- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access VBA エラートラップでの終了処理)
Access VBA エラートラップでの終了処理
このQ&Aのポイント
- Access2003 VBAのエラートラップで終了時のメッセージ表示を制御する方法
- エラートラップ内でエラーフラグに値を設定しても保持されない問題の解決方法
- Access VBAの終了確認メッセージの表示を制御するためのヒント
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Application.Quit で bln_ErrFlg が破棄されたんでしょう。 ERR_LINE の中では Application.Quit じゃなくて、そのフォームを閉じる記述をし、 Unload イベントの中ではフラグが立っていなければメッセージ表示をし、フラグが立っていれば Application.Quit する、 てのはどうでしょうか? Private Sub btn_A_Click() On Error GoTo ERR_LINE ' 処理 Exit Sub ERR_LINE: MsgBox "予期せぬエラーが発生しました。終了します。" & vbCrLf & _ "エラー番号: " & Err.Number & vbCrLf & _ "エラー内容: " & Err.Description, vbCritical + vbOKOnly, "例外エラー" bln_ErrFlg = True DoCmd.Close acForm, Me.Name End Sub Private Sub Form_Unload(Cancel As Integer) If Not (bln_ErrFlg) Then Cancel = MsgBox("終了しますがよろしいですか?", vbQuestion + vbYesNo, "終了確認") = vbNo Else Application.Quit End If End Sub
お礼
ご教授のとおりで、実現できました。 Form_LoadやForm_Openなどのフォーム開閉時はやり方を変えて終了させましたが、 概ねこれで大丈夫でした。 ありがとうございました。