Error イベントは、フォームにフォーカスがあるときに Microsoft Access で実行時エラーが生成されたときに発生します。
構文
式。エラー (DataErr、 応答)
expressionForm オブジェクトを表す変数です。
パラメーター
| 名前 | 必須 / オプション | データ型 | 説明 |
|---|---|---|---|
| DataErr | 必須 | Integer | エラー発生時に Err オブジェクトから返されるエラー コード。 DataErr 引数と Error 関数を使用して、対応するエラー メッセージに数値をマップします。 |
| Response | 必須 | Integer | この設定は、エラー メッセージを表示するかどうかを決定します。
Response 引数には、次の組み込み定数のいずれかを指定できます。
|
注釈
これには、Access データベース エンジンのエラーが含まれますが、Visual Basic の実行時エラーや ADO からのエラーは含まれません。
このイベントが発生したときにマクロまたはイベント プロシージャを実行するには、 OnError プロパティをマクロの名前または [Event Procedure] に設定します。
エラー イベントの発生時にイベント プロシージャまたはマクロを実行することで、Access のエラー メッセージを傍受し、アプリケーションにとってより具体的な意味を伝えるカスタム メッセージを表示することができます。
例
次の使用例では、既定のエラー メッセージをカスタム エラー メッセージに置き換える方法を示します。 重複するキーが見つかったことを示すエラー メッセージ (エラー コード 3022) が Access によって返されると、このイベント プロシージャは、アプリケーション固有の詳細情報をユーザーに提供するメッセージを表示します。
次の使用例の実行結果を確認するには、各レコードで一意な社員コードをキーとするテーブルに基づくフォームに、次のイベント プロシージャを追加します。
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Const conDuplicateKey = 3022
Dim strMsg As String
If DataErr = conDuplicateKey Then
Response = acDataErrContinue
strMsg = "Each employee record must have a unique " _
& "employee ID number. Please recheck your data."
MsgBox strMsg
End If
End Sub
次の使用例では、既定のエラー メッセージをカスタム エラー メッセージに置き換える方法を示します。
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Select Case DataErr
Case 2113
MsgBox "Only numbers are acceptable in this box", vbCritical, "Call 1-800-123-4567"
Response = acDataErrContinue
Case 2237
MsgBox "You can only choose from the dropdown box"
Response = acDataErrContinue
Case 3022
MsgBox "You entered a value that exists already in another record"
Response = acDataErrContinue
SSN.Value = SSN.OldValue
Case 3314
MsgBox "The DOH is required, so you cannot leave this field empty"
Response = acDataErrContinue
Case Else
Response = acDataErrDisplay
End Select
ActiveControl.Undo
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。