私はAccess VBAでエラーを記録する方法を私に示したチュートリアルを見つけました、そして、それは大部分はうまくいきます...しかし、私のエラーテーブルをチェックするときエラー番号が記録されないそして説明がないおよそ40のエントリがあります。エラーがユーザーに表示されないようにしたいのですが、エラーが発生したら、ユーザー名、コンピュータ名、エラー番号、および説明を電子メールで送信して、必要に応じて更新できるようにします。しかし、説明やエラー番号がなくても、あまりできません。
これは私が持っている手順です、私は不足しているエラーをキャプチャすることができるようにするために追加/変更/編集/更新が必要ですか?
Public Sub Error()
On Error GoTo errorerrorhandler
strDescription = Chr(34) & Err.Description & Chr(34)
strSQL = "INSERT INTO tblErrorLog (ErrDate, CompName, UsrName, ErrNumber, ErrDescription, ErrModule)" _
& " VALUES(#" & Now() & "#, '" & Environ("computername") _
& "', '" & CurrentUser & "', " & Err.Number _
& ", " & strDescription & ", '" & VBE.ActiveCodePane.CodeModule & "')"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
Exit Sub
errorerrorhandler:
Exit Sub
End Sub
そして上記の手順は私のテーブルにエラー番号を表示します
6, 2113, 3070
編集
私はエラーを書き込もうとするための包括的なキャッチオールとしてsubを使用しています、そして私が通知を受けたら私はそれらを直すことができます。たとえば、これは私がデータベースからデータを検索し、フォーム上のフィールドに値を設定するために使用するsubです。
Private Sub PullDataFromDB()
On Error GoTo errHandler
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT [ASD], [ID], [JN], [SP], [CI], [CM] FROM DBTable1 WHERE [IN] = CSTR(" & Me.[INNum] & ") ")
Me.[INNum] = rs![ID]
Me.[SD] = rs![ASD]
Me.[JN] = rs![JN]
Me.[SP] = rs![SP]
Me.[CI] = rs![CI]
Me.[CM] = rs![CM]
rs.Close
Set rs = Nothing
Exit Sub
errHandler:
Error
End Sub
なぜ投票は終了するのですか? @少なくとも私にコメントを残して私は額面ではないものを知っている?
—
user2676140
行方不明のエラー?私はVBaのAPIを見ることをお勧めします。それはあなたがたいてい誰かにあなたのコーディングだけをするように頼んでいるように見えます。具体的には何にこだわっていますか?あなたが "本にあるすべての間違いを私に教えてください"と頼んでいるなら、私はあなたがこのようになるとは思わない。
—
ejbytes
この質問はStackOverflowに適しています。あなたのsubがどのように呼ばれるかについての情報を追加してください。それを呼ぶ
—
Andre
Error()
作り付けのように Error()
機能はお勧めできません。
@アンドレ - 編集済み? Errorプロシージャを呼び出す方法を説明します。 errHandlerとしてエラーが発生したときに、任意のsubから呼び出されます。
—
user2676140
@ejbytes - 私のために書かれたコードを要求していません。私のメソッドに追加のエラーを含むようなものが欠けているかどうかだけではわからなかった。 APIをチェックするための情報をありがとう。
—
user2676140