tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von tombe
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
2284
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Willi_Kaiser Willi_Kaiser ist offline Mitglied Bronze
    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
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  3. #3
    Willi_Kaiser Willi_Kaiser ist offline Mitglied Bronze
    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 ?
     

  4. #4
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  5. #5
    Willi_Kaiser Willi_Kaiser ist offline Mitglied Bronze
    Registriert seit
    Oct 2010
    Beiträge
    44
    Der sagt mit unerwartetes Listenzeichen und markiert Put #1, error
    rot :
     

  6. #6
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  7. #7
    Willi_Kaiser Willi_Kaiser ist offline Mitglied Bronze
    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 ?
     

  8. #8
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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 & ")"
    Willi_Kaiser bedankt sich. 
    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.

  9. #9
    Willi_Kaiser Willi_Kaiser ist offline Mitglied Bronze
    Registriert seit
    Oct 2010
    Beiträge
    44
    Hat funktioniert, danke
     

Ähnliche Themen

  1. Error-Handler - Fatal Errors loggen?
    Von Klein0r im Forum PHP
    Antworten: 13
    Letzter Beitrag: 04.10.08, 14:51
  2. Error Handling in ein Modul auslagern !
    Von m0in im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 09.07.06, 09:49
  3. Datenbank abgeschmiert - Got error 127 from table handler
    Von Bombi im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 11.07.03, 10:14
  4. Got error 127 from table handler
    Von DaRula im Forum PHP
    Antworten: 4
    Letzter Beitrag: 21.07.02, 18:05
  5. error handler - switch befehl
    Von stephan01 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 11.12.01, 17:05

Stichworte