Wie fange ich einen Fehler in Access VBA ab?

698
user2676140

Ich habe ein Tutorial gefunden, das mir zeigte, wie man Fehler in Access VBA protokolliert, und es funktioniert meistens ... aber bei der Überprüfung meiner Fehlertabelle gibt es ungefähr 40 Einträge, in denen keine Fehlernummer eingetragen ist oder eine Beschreibung vorhanden ist. Ich möchte, dass der Fehler dem Benutzer nicht angezeigt wird, aber wenn der Fehler auftritt, senden Sie mir den Benutzernamen, den Computernamen, die Fehlernummer und die Beschreibung, damit ich sie bei Bedarf aktualisieren kann. Aber ohne Beschreibung und / oder Fehlernummer kann ich nicht viel machen.

Dies ist das Verfahren, das ich habe. Was muss ich hinzufügen / ändern / bearbeiten / aktualisieren, um die fehlenden Fehler erfassen zu können?

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 

Das obige Verfahren zeigt Fehlernummern in meiner Tabelle an

6, 2113, 3070 

BEARBEITEN
Ich benutze das U- Boot als Gesamtfang, um zu versuchen, Fehler zu schreiben, und ich kann sie beheben, sobald ich informiert bin. Dies ist beispielsweise ein Sub, mit dem ich Daten aus einer Datenbank nachschlagen und Felder in einem Formular ausfüllen kann:

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 
0
Warum die Abstimmung schließen? @ Zumindest hinterlasse mir einen Kommentar, damit ich weiß, was nicht gleichwertig ist? user2676140 vor 7 Jahren 0
Fehlende Fehler? Ich würde vorschlagen, die API für VBa zu betrachten. Es sieht so aus, als würden Sie meistens jemanden bitten, nur Ihre Kodierung zu machen. Was hältst du gerade fest? Wenn Sie nach "Gib mir jeden Fehler, den es in dem Buch gibt" fragen, dann glaube ich nicht, dass Du es so bekommst. ejbytes vor 7 Jahren 0
Diese Frage ist besser für StackOverflow geeignet. Fügen Sie Informationen hinzu, wie Ihr Sub aufgerufen wird. Das Aufrufen von 'Error ()' wie die eingebaute `Error ()` - Funktion ist keine gute Idee. Andre vor 7 Jahren 1
@Andre - bearbeitet? um zu zeigen, wie ich meine Fehlerprozedur aufrufe. Es wird von jedem Sub aufgerufen, wenn ein Fehler als errHandler auftritt user2676140 vor 7 Jahren 0
@ ejbytes - fragt nicht nach Code, der für mich geschrieben wird. Ich war mir nur nicht sicher, ob bei meiner Methode etwas fehlte, das zusätzliche Fehler enthalten könnte. Vielen Dank für die Informationen zur Überprüfung der APIs. user2676140 vor 7 Jahren 0

0 Antworten auf die Frage