Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Fehlerbehandlung in VBA
zurück: Dateinamen + Ordnernamen in bestimmter Ordnertiefe auslesen weiter: einheitsgröße für tabellen mittels vba Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Blockbuster
geht so ^^


Verfasst am:
19. Feb 2014, 10:05
Rufname:

Fehlerbehandlung in VBA - Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Hallo,

Ich bin gerade dabei nachträglich in meiner DB Fehlerbehandlungen einzubauen.

Dafür habe ich bis jetzt das hier geschrieben:
Code:
Private Sub Button_Click()
On Error GoTo Fehlerbehandlung
    'Prozedur
Ende:
    On Error Resume Next
    DoCmd.Close
Fehlerbehandlung:
    Debug.Print Err.Number
    Debug.Print Err.Description
    MsgBox "Fehlernummer: " & Err.Number & Chr(13) & "Fehlerbeschreibung: " & Err.Description
    Resume Ende
End Sub
Ich habe die Prozedur nun zum Test absichtlich in einen Fehler laufen lassen. Das Ergebnis ist, dass nachdem ich auf den Button gedrückt habe zuerst die MsgBox angezeigt wird mit Fehlernummer und -beschreibung. Danach nochmal so ein kleines Fenster in dem steht:
Zitat:
Fehlernummer: 0
Fehlerbeschreibung:
Irgendwas stimmt doch da noch in meinem Code nicht. Kann mir jemand helfen und mir sagen, wie eine korrekte Fehlerbehandlung aussieht?
_________________
Mit freundlichen Grüssen
Ich editiere gerne und viel Smile Bitte ab und zu aktualisieren
KlausMz
Moderator Access


Verfasst am:
19. Feb 2014, 10:48
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Hallo,
Deine Fehlerbehandlung ist endlos. Du hast ja keinen Ausstieg aus der Prozedur.
Der Code läuft ja immer sequentiell von oben durch:
Fehler > Fehlerbehandlung > Resume Ende > Fehlerbehandlung
Code:
Private Sub Button_Click()
On Error GoTo Fehlerbehandlung
    'Prozedur
Ende:
    Exit Sub
Fehlerbehandlung:
    MsgBox "Fehlernummer: " & Err.Number & Chr(13) & "Fehlerbeschreibung: " & Err.Description
    Resume Ende
End Sub
Kleiner Tipp, installiere die kostenlosen MZ-Tool, die erzeugen in jeder Prozedur mit einem Mausklick eine vollständige Fehlerbehandlung.
_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Blockbuster
geht so ^^


Verfasst am:
19. Feb 2014, 10:58
Rufname:

AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Hallo Klaus,

Erstmal herzlichen Dank, die Fehlerbehandlung läuft nun so wie ich mir das vorgestellt habe.

Mir fiel gerade noch ein, dass es für meine Nachfolger (arbeite leider nur eine begrenzte Zeit an dieser Datenbank) von Nutzen wäre, wenn die Fehlermeldung zusätzlich noch der Name der Prozedur ausgegeben wird, in der der Fehler vorkommt. Vor kurzem gab es hier auch einen Beitrag dazu, aber ich finde den irgendwie nicht Sad

Mit Hilfe von Tante Google bin ich auf die Idee gekommen am Anfang jeder Prozedur den Namen der Prozedur als eine Variable zu definieren und bei der Fehlermeldung mit auszugeben.
Code:
Private Sub bttnOpenFormMenue_Click()
    Dim ProzName As String

    ProzName = "bttnOpenFormMenue"
    '...
    MsgBox "Fehlernummer: " & Err.Number & Chr(13) & "Fehlerbeschreibung: " & Err.Description & Chr(13) & "Prozedurname: " & ProzName
Ist das sinnvoll?
_________________
Mit freundlichen Grüssen
Ich editiere gerne und viel Smile Bitte ab und zu aktualisieren
KlausMz
Moderator Access


Verfasst am:
19. Feb 2014, 11:14
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Hallo,
wozu die Variable?
Dann kannst Du auch gleich so schreiben:
Code:
Private Sub bttnOpenFormMenue_Click()
    '...
    MsgBox "Fehlernummer: " & Err.Number & Chr(13) & "Fehlerbeschreibung: " & Err.Description & Chr(13) & "Prozedurname: bttnOpenFormMenue"
Übrigens, die MZ Tools machen das automatisch, mit Namen der Prozedur und dem Namen des Objekt in dem die Prozedur ist.

Vor Mausklick:
Code:
Private Sub Button_Click()
    ' ab hier die eigentliche Aufgabe der Prozedur
End Sub
Nach Mausklick in MZ-Tools
Code:
Private Sub Button_Click()
On Error GoTo Button_Click_Error
    ' ab hier die eigentliche Aufgabe der Prozedur
   On Error GoTo 0 ' wird von MZ-Tools automatisch eingefügt, ist aber überflüssig
   Exit Sub
Button_Click_Error:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Button_Click of VBA Dokument Report_BerichtsName"
End Sub

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Blockbuster
geht so ^^


Verfasst am:
20. Feb 2014, 09:27
Rufname:


AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Blockbuster am 19. Feb 2014 um 10:27 hat folgendes geschrieben:
Also manchmal habe ich dermassen ein Brett vor dem Schädel Confused
Hast natürlich Recht.

Vielen Dank für die Hilfe.

Okay, ich werde mir das MZ Tool anschauen Smile

Hallo,

Jetzt ist mir aber doch eine merkwürdige Sache aufgefallen.

Wenn ich mit diesem Code arbeite:
Code:
Ende:
    DoCmd.Close
    Exit Sub
Fehlerbehandlung:
    MsgBox "Fehlernummer: " & Err.Number & Chr(13) & "Fehlerbeschreibung: " & Err.Description
    Resume Ende
dann wird das Formular geschlossen, obwohl die Prozedur nicht in einen Fehler läuft.
Ich beziehe mich dabei auf den Artikel aus dem dbwiki: Access Anfänger: Fehlerbehandlung

Dort heisst es:
Zitat:
' hier stehen falls nötig allg. Endemaßnahmen,
' z.B. Schließen von Formularen usw.
Wie kann ich denn bei einem Fehler das Formular schliessen lassen?
_________________
Mit freundlichen Grüssen
Ich editiere gerne und viel Smile Bitte ab und zu aktualisieren
Nouba
nicht ganz unwissend :)


Verfasst am:
20. Feb 2014, 10:19
Rufname:
Wohnort: Berlin

AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Hallo Blockbuster,

Blockbuster hat folgendes geschrieben:
Wie kann ich denn bei einem Fehler das Formular schliessen lassen?

Code:
Ende:
     'ggf. Aufräumarbeiten folgen lassen
     Exit Sub

Fehlerbehandlung:
     MsgBox "Fehlernummer: " & Err.Number & Chr(13) & "Fehlerbeschreibung: " & Err.Description
     DoCmd.Close
     Resume Ende
End Sub 'oder End Function

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Blockbuster
geht so ^^


Verfasst am:
20. Feb 2014, 10:30
Rufname:

AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Hallo Nouba,

Danke! Das funktioniert schonmal sehr gut.

Was genau meinst du mit "Aufräumarbeiten" ?

_________________
Mit freundlichen Grüssen
Ich editiere gerne und viel Smile Bitte ab und zu aktualisieren
Nouba
nicht ganz unwissend :)


Verfasst am:
20. Feb 2014, 10:39
Rufname:
Wohnort: Berlin

AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Hallo,

Aufräumarbeiten hängen vom Kontext ab. Wenn z. Bsp. eine Datei im Code geöffnet wurde, sollte man sie auch wieder schließen, bevor die Prozedur/Funktion verlassen wird.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Blockbuster
geht so ^^


Verfasst am:
20. Feb 2014, 10:57
Rufname:


AW: Fehlerbehandlung in VBA - AW: Fehlerbehandlung in VBA

Nach oben
       Version: Office 2010

Oh okay, jetzt ist mir das auch klar ^^
Herzlichen Dank.

_________________
Mit freundlichen Grüssen
Ich editiere gerne und viel Smile Bitte ab und zu aktualisieren
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: Fragen zu Tipps & Tricks - Fehlerbehandlung 21 CoCo84 6109 21. Apr 2014, 12:24
Willi Wipp Fragen zu Tipps & Tricks - Fehlerbehandlung
Keine neuen Beiträge Access Programmierung / VBA: Debugger trotz vorhandener Fehlerbehandlung 2 yoseki 83 24. Feb 2014, 17:59
yoseki Debugger trotz vorhandener Fehlerbehandlung
Keine neuen Beiträge Access Programmierung / VBA: Fehlerbehandlung Recordset Laufzeitfehler 91 6 Zauberbaecker 493 04. Jun 2012, 19:05
MissPh! Fehlerbehandlung Recordset Laufzeitfehler 91
Keine neuen Beiträge Access Programmierung / VBA: Fehlerbehandlung in Formulare 8 Herbert40 493 22. Feb 2012, 15:51
Gast Fehlerbehandlung in Formulare
Keine neuen Beiträge Access Formulare: Me.textfeld.Undo funktioniert bei Fehlerbehandlung nicht 6 derbesteschmitt 582 08. Jun 2011, 10:28
derbesteschmitt Me.textfeld.Undo funktioniert bei Fehlerbehandlung nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Fehlerbehandlung im SQL Statement 14 WasErlaubeSTRUUNZ 754 29. Jul 2010, 14:29
AS55 Fehlerbehandlung im SQL Statement
Keine neuen Beiträge Access Programmierung / VBA: Fehlerbehandlung wenn Formular nicht offen 5 Mirko K 353 12. Jun 2010, 17:46
derArb Fehlerbehandlung wenn Formular nicht offen
Keine neuen Beiträge Access Programmierung / VBA: Access steigt in der Fehlerbehandlung aus... 10 Wolfgang 1958 470 13. Dez 2008, 20:21
Wolfgang 1958 Access steigt in der Fehlerbehandlung aus...
Keine neuen Beiträge Access Programmierung / VBA: Fehlerbehandlung Datum 4 Mittelfarwick 657 02. Aug 2008, 14:36
Mittelfarwick Fehlerbehandlung Datum
Keine neuen Beiträge Access Hilfe: Fehlerbehandlung in VBA / Access 1 Gast 972 25. März 2008, 19:06
rita2008 Fehlerbehandlung in VBA / Access
Keine neuen Beiträge Access Formulare: fehlerbehandlung 3 Tom07 481 22. Nov 2007, 23:24
Nouba fehlerbehandlung
Keine neuen Beiträge Access Programmierung / VBA: TransferSpreadsheet - Fehlerbehandlung 4 byteline 1094 20. Sep 2007, 10:08
byteline TransferSpreadsheet - Fehlerbehandlung
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Frontpage Forum