- ベストアンサー
ADODCでデータベースに接続する際のエラーを拾うには?
WindowsXP,VB6,SP6,SQL2005にて開発しています。 ADODCを使って、データベースに接続しているのですが、 何らかのエラーが発生した場合、 こちらの指定したエラーメッセージを表示させたいのです。 なので、ADODC1_Errorにて試してみたのですが、 fCancelDisplay=0にしても、ErrorNumber=0にしても、 Scode=0にしても、Description=""にしても、 メッセージボックス(表示は何もない)が表示されてしまうんです。 それを出さないようにするには、どうしたらよいのでしょうか? どうぞ、ご教授よろしくお願いしますm(_ _)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
SQL Sever 2000+Access の場合ですが、基本は同じだと考えて・・・。 Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String) MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _ "・Err.Description=" & CnnErrors.Description & Chr$(13) & _ "・Err.Number=" & CnnErrors.Number & Chr$(13) & _ "・SQL State=" & CnnErrors.SQLState & Chr$(13) & _ "・SQL Text=" & strSQL, _ vbExclamation, " ADO関数エラーメッセージ" End Sub Public Function CnnExecute(ByVal strSQL As String) As Boolean On Error GoTo Err_CnnExecute Dim isOK As Boolean Dim cnn As ADODB.Connection isOK = True Set cnn = CurrentProject.Connection With cnn .Errors.Clear .BeginTrans .Execute strSQL .CommitTrans End With Exit_CnnExecute: On Error Resume Next cnn.Close Set cnn = Nothing CnnExecute = isOK Exit Function Err_CnnExecute: isOK = False If cnn.Errors.Count > 0 Then ErrMessage cnn.Errors(0), strSQL cnn.RollbackTrans Else MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _ vbExclamation, " 関数エラーメッセージ" End If Resume Exit_CnnExecute End Function *単なるデザイナですので外していたらスミマセン!
その他の回答 (1)
- trajaa
- ベストアンサー率22% (2662/11921)
ん~言ってることがわかるような分からないような。。。 ・ADO接続でDB使っています。 ・ADO接続でエラーが発生した場合に、VBが出すエラーMSGではなく、自前の処理を行いたい。 ・エラーで使用されるオブジェクト等をクリアしても、標準のエラー処理が動いてしまう。 と言うことですか? エラートラップ掛けていますか? 関数の頭で On Error GoTo ErrHandler と呪文を唱え 関数の尾部で、 'エラー処理 ErrHandler: といった感じでラベルを宣言し、その中で自前の処理をすればよいのでは? この説明で理解できますか?