ConnectionオブジェクトのErrorsプロパティでエラー内容を取得 データベースプロバイダで発生したエラーに関する情報はErrorオブジェクトに格納されるので ・Number:エラー番号を返す エラーが出るような処置をあえて行い、エラー発生時用に準備した処理を行う Dim エラー用オブジェクト変数 As ADODB.Error ・ステートメント カレントプロジェクトのデータベースに接続する場合の記述 ▼記述例▼ ▼実行結果▼
Errorに関する情報を取得するには
アクセスの際に発生したエラーを確認するにはErrorsコレクションの各プロパティを参照するとよいプロパティ
・Description:エラー内容を返す
・Source:エラーを起こしたオブジェクトを返す何を行うか
プロパティ参照時の書式例
~~
On Error GoTo 行ラベル ※「ErrExit」という単語じゃなくてもよい
処理
行ラベル :
For Each エラー用オブジェクト変数 In Connectionオブジェクト変数.Errors
処理
Next記述例における利用パーツ
→On Error GoTo / For Each
・プロパティ
→Number / Description / Source
・メソッド
→AddNew / Update / Open / Close
【実践】エラー発生時にその内容を確認するための記述例
敢えて重複なしインデックスのフィールドに重複レコードを追加することでエラーを起こし
エラー番号・エラー内容・エラーを起こしたオブジェクトを、イミディエイトウィンドウに表示
▼操作対象テーブル「飲料リスト」▼
Sub MakeError()
Dim CNT As ADODB.connection
Dim RST As ADODB.Recordset
Dim ErrInfo As ADODB.Error
Set CNT = CurrentProject.connection
Set RST = New ADODB.Recordset
RST.Open "飲料リスト", CNT, adOpenKeyset, adLockOptimistic
On Error GoTo ErrLabel
RST.AddNew
RST("通し番号") = "AA04"
RST("品目") = "ジャスミン茶"
RST.Update
Exit Sub
ErrLabel:
For Each ErrInfo In CNT.Errors
Debug.Print ErrInfo.Number & vbCrLf & ErrInfo.Description & vbCrLf & ErrInfo.Source
Next
End Sub