2007 Error Handler im Modul

Willi_Kaiser

Mitglied
Hallo,

ich schreibe gerade ein kleines Programm in Access 2007.
Nun finde ich es unnötig in jeder Prozedur einen Errorhandler zu schreiben, das sich die Fehler auf den Formularen, Prozeduren ja wieder holen.

Jetzt frage ich mich ob man den Errorhandler nicht als Modul schreiben kann, sodass man nur einen Verweiß auf das Modul in die Prozeduren schreibt und er dann weiß wo er den Errorhandler findet.

Ich würde mich freuen, wenn mir jemand weiterhelfen würde.

Hochachtungsvoll
Willi Kaiser
 
Gehen tut das schon.

Du müsstest halt nur den Fehlercode/Fehlernummer an diese Prozedur übergeben und dort entsprechend bearbeiten.
Wird aber bestimmt recht knifflig wenn du z.B. viele Eingabefelder hast und da auf falsche Eingaben reagieren willst.


Visual Basic:
Sub Fehlerbehandlung (error As Integer)

'Hier werden dann die Fehler behandelt
Select Case error
    Case 1:
    Case 2:
    Case 3:
    Case Else:
End Select

End Sub


Sub Irgendeine_Click ()
On Error Goto fehler

'Anderer Code

Exit Sub
fehler:
    Fehlerbehandlung (Err.Number)
    Resume Next
End Sub
 
Funktioniert wunderbar, wenn ich:
Code:
On Error Goto fehler ' an jeden Anfang der Prozedur

Code:
Exit Sub
fehler:
    Fehlerbehandlung (Err.Number) ' an jedes Ende der Prozedur
    Resume Next

einfüge, dann geht alles und er guckt dann im Modul nach dem Err.Number und gibt dann die entsprechende Reaktion aus.

Eine Frage hätte ich noch, einen Error Log wo z.B Fehler reingeschreiben werden, die nicht als Case angegeben wurden. Ist sowas möglich oder werden dann alle Fehler in den Log gepostet ?
 
Also angenommen du fängst die Fehler 1, 2, 3 und 5 ab. Dann würde mit folgendem Beispiel der Fehler 4 (und natürliach auch alle anderen) in die Logdatei geschrieben:

Visual Basic:
Select Case error
    Case 1: MsgBox "Fehlermeldung 1"
    Case 2: MsgBox "Fehlermeldung 2"
    Case 3: MsgBox "Fehlermeldung 3"
    Case 5: MsgBox "Fehlermeldung 5"
    Case Else:
        Open "errorlog.txt" As 1
        Put #1, error
        Close #1
End Select

Kannst auch mal das hier noch lesen, da wird schön beschrieben wie man SELECT-Anweisungen gestallten kann.
 
Zuletzt bearbeitet:
Sorry, mein Fehler:

Visual Basic:
Open "errorlog.txt" For Append As #1
Print #1, error
Close #1
 
Code:
Open "c:\Datenbank\Testumgebung\errorlog.txt" For Append As #1
              Print #1, error, (Now())
              Close #1

So funktionierts nun, er schreibt die Error und die aktuelle Zeit in die erstellte Txt Datei.
Kann man das auch auf eine Tabelle beziehen ?
 
Klar geht das. Nur kann ich dir jetzt aus dem Kopf heraus den Code dafür nicht anbieten.

In etwa aber so:

Visual Basic:
CurrentDb.Execute "INSERT INTO deine_tabelle (felhler, datum, uhrzeit) VALUES (" & error & ", " & Date & ", " & Time & ")"
 
Zurück