1Danke
ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
2284
2284
EMPFEHLEN
-
31.03.11 12:04 #1
- Registriert seit
- Oct 2010
- Beiträge
- 44
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
-
31.03.11 12:58 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
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.
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
31.03.11 14:02 #3
- Registriert seit
- Oct 2010
- Beiträge
- 44
Funktioniert wunderbar, wenn ich:
Code :1
On Error Goto fehler ' an jeden Anfang der Prozedur
Code :1 2 3 4
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 ?
-
31.03.11 14:26 #4
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
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:
Code vb:1 2 3 4 5 6 7 8 9 10
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.Geändert von tombe (31.03.11 um 14:28 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
31.03.11 14:31 #5
- Registriert seit
- Oct 2010
- Beiträge
- 44
Der sagt mit unerwartetes Listenzeichen und markiert Put #1, error
rot :
-
31.03.11 14:40 #6
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Sorry, mein Fehler:
Code vb:1 2 3
Open "errorlog.txt" For Append As #1 Print #1, error Close #1
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
31.03.11 14:57 #7
- Registriert seit
- Oct 2010
- Beiträge
- 44
Code :1 2 3
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 ?
-
31.03.11 15:48 #8
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Klar geht das. Nur kann ich dir jetzt aus dem Kopf heraus den Code dafür nicht anbieten.
In etwa aber so:
Code vb:1
CurrentDb.Execute "INSERT INTO deine_tabelle (felhler, datum, uhrzeit) VALUES (" & error & ", " & Date & ", " & Time & ")"
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
31.03.11 16:54 #9
- Registriert seit
- Oct 2010
- Beiträge
- 44
Hat funktioniert, danke
Ähnliche Themen
-
Error-Handler - Fatal Errors loggen?
Von Klein0r im Forum PHPAntworten: 13Letzter Beitrag: 04.10.08, 14:51 -
Error Handling in ein Modul auslagern !
Von m0in im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 09.07.06, 09:49 -
Datenbank abgeschmiert - Got error 127 from table handler
Von Bombi im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 11.07.03, 10:14 -
Got error 127 from table handler
Von DaRula im Forum PHPAntworten: 4Letzter Beitrag: 21.07.02, 18:05 -
error handler - switch befehl
Von stephan01 im Forum PHPAntworten: 9Letzter Beitrag: 11.12.01, 17:05





Zitieren

Login





