Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Error-Logfile für VBA
zurück: Sprache der Anwendung dynamisch wechseln weiter: Filerenamer V1.0 Massenbearbeitung von Dateinamen umbenennen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Information Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Vandroy
VBA-Progger


Verfasst am:
12. Apr 2011, 11:30
Rufname:

Error-Logfile für VBA - Error-Logfile für VBA

Nach oben
       Version: Office 2007

Hallo,

ich verwende seid einiger Zeit ein Logfile, um mir die Fehler in VBA zu loggen. Ist ja immer etwas nervig, wenn ein User ankommt und sagt, "Ich hatte da mal einen Fehler..." und keine Ahnung hat, was es war.
Der ErrorHandler muss in jede Funktion selber eingebaut und kurz "konfiguriert" werden, anschließend läuft alles automatisch ab...

Der ErrorHandler sollte in ein eigenes Modul eingebaut werden, im Anhang auch noch die BAS-Datei dazu...
Code:
'*****************************************************************************
'* Title/Purpose:   Logfile for VBA-Errors
'*============================================================================
'* Created by: <Author>,   <YYYY-MM-DD>
'* ---------------------------------------------------------------------------
'* Created by:   Vandroy, 2010-06-26
'*
'* Revision history:  ********************************************************
'*  Rev<XX> <Author>,  <YYYY-MM-DD>,       <Description of the changes>
'* ---------------------------------------------------------------------------
'*  V1.0     Vandroy, 2010-06-26,  First Build
'*
'*============================================================================
'* Please remember to update the Revision history
'*****************************************************************************
'*****************************************************************************
Option Compare Database
Option Explicit

'*****************************************************************************
Public Sub fctErrorHandler(ErrorNumber As String, ErrorDesc As String _
                         , ErrorObject As String, ErrorRoutine As String _
                         , Optional ErrorComment As String = "-")
    Dim iErrorFile As Integer
   
    'Error-Message------------------------------------------------------------
    MsgBox "Es ist ein Fehler aufgetreten, bitte starten Sie die Anwendung " _
         & "erneut!" & vbCrLf & vbCrLf & ErrorNumber & vbTab & ErrorDesc _
         & vbCrLf & vbCrLf & "Modul: " & ErrorObject & vbCrLf & "Function: " _
         & ErrorRoutine & vbCrLf & "Comment: " & ErrorComment, vbCritical _
         , "Error"
    '-------------------------------------------------------------------------
    'Save Error-Message-------------------------------------------------------
    iErrorFile = FreeFile()
    If Dir(CurrentProject.Path & "\VBA_Error.txt") = "" Then
        Open CurrentProject.Path & "\VBA_Error.txt" For Output As #iErrorFile
        Print #iErrorFile, "Date & Time" & vbTab & "Error-Number" & vbTab _
                         & "Error-Description" & vbTab & "Error-Object" _
                         & vbTab & "Error-Routine" & vbTab & "Error-Comment"
      Else
        Open CurrentProject.Path & "\VBA_Error.txt" For Append As #iErrorFile
    End If
    Print #iErrorFile, Format(Now, "yyyy-mm-dd, hh:nn:ss") & vbTab _
                     & ErrorNumber & vbTab & ErrorDesc & vbTab & ErrorObject _
                     & vbTab & ErrorRoutine & vbTab & ErrorComment
    Close #iErrorFile
    '-------------------------------------------------------------------------
End Sub
'*****************************************************************************
In den einzelnen Funktionen kann man ihn wie folgt einbauen:
Code:
 '*****************************************************************************
Function fktDummy()
On Error GoTo ErrorHandler
    '-------------------------------------------------------------------------
    'Funktionscode...
    Dim RecSet As Recordset
   
    Set RecSet = DBEngine(0)(0).OpenRecordset("SELECT * FROM tblFoo")
    '-------------------------------------------------------------------------
CleanUp_Exit:
    '--- CleanUp ---
    Set RecSet = Nothing
    '--- Exit ---
    Exit Function
ErrorHandler:
    fctErrorHandler Err.Number, Err.Description, "modTest", "fktDummy"
    Resume CleanUp_Exit
End Function
'*****************************************************************************
Wichtig dabei ist das Modul oder die Form einzutragen, in der die Funktion liegt und die Funktionsnamen anzupassen. Das "CleanUp_Exit" dient dazu, Code auch im Fehlerfall auszuführen, da dieser Nach dem ErrorHandler aufgerufen wird. Also Dateihandler zu schließen oder Objekte zu leeren...
Optional kann noch ein Kommentar mitgegeben werden, dieser kann auch aus Variableninhalten bestehen:
Code:
    fctErrorHandler Err.Number, Err.Description, "modTest", "fktDummy" _
                  , iZaehler & vbTab & strSQL
Per Tab getrennt, kann man die Aufzählung unter Comment beliebig verlängern und kriegt hinterher immer noch ein Textfile, dass sich in Excel gut lesen lässt.

Ich hoffe es hilft jemandem! Gruß,
Vandroy



modErrorHandler.zip
 Beschreibung:

Download
 Dateiname:  modErrorHandler.zip
 Dateigröße:  881 Bytes
 Heruntergeladen:  76 mal

Gast



Verfasst am:
28. Aug 2011, 19:30
Rufname:


AW: Error-Logfile für VBA - AW: Error-Logfile für VBA

Nach oben
       Version: Office 2007

Danke für diese wirklich sehr gute Idee!
Gefällt mir und wurde direkt in meine Datenbank eingebaut!

Hatte sowieso eine GlobalErrorMsg-Funktion,
da habe ich dann einfach am Ende den Aufruf deiner Funktion eingebaut, und muss so nichtmal bei den ganzen Prozeduren einzeln etwas ändern, da in der GlobalErrorFunktion schon Variablen mit der ErrorNumber, dem Modul und dem Prozedurnamen etc existieren Smile
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

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme