zu 1 Würde ich auch gerne mal wissen ... ich nutze eigentlich immer FSO, da so schön einfach.
zu 2.): Generell öffne und schließe ich jede Datei vor und nach jedem Zugriff. Ist bei Mehrbenutzeranwendungen einfach sauberer. Außerdem vergesse ich beim kodieren nicht, welchen Zustand eine bestimmte Datei zu einem bestimmten Zeitpunkt hat. Ist aber letztlich Geschmacksache und hängt auch von der Anwendung ab, die Du schreibst.
zu 3.): so mache ich es ... gibt mit Sicherheit schönere und bessere Versionen, aber diese hier war ratzfatz geschrieben
Public Function ShowError(prmKontext As String, prmProzedur As String, _
prmErrNumber As Long, prmError As String)
'Fehlerbehandlung
On Error Resume Next
'Deklarationen
Dim strDateiname, strDateStamp, strTimeStamp As String
Dim fsFehlerlog, Fehlerlog As Object
Const ForReading = 1, ForWriting = 2, ForAppending = 8
'Initialisierung
strDateiname = strAppPath & "error.log"
strDateStamp = Left(Now(), 10)
strTimeStamp = Right(Now(), 8)
'Fehlerlog-Datei zum Anhängen öffnen, setzt voraus, dass bereits eine Datei
' besteht
Set fsFehlerlog = CreateObject("Scripting.FileSystemObject")
Set Fehlerlog = fsFehlerlog.OpenTextFile(strDateiname, ForAppending)
'Fehler mit Datum/Zeit in Protokoll schreiben
Fehlerlog.WriteLine strDateStamp & "," & strTimeStamp & "," & prmKontext & _
"," & prmProzedur & "," & Str(prmErrNumber) & "," & prmError
Fehlerlog.Close
'Nachricht an Benutzer geben
msgPrompt = "Kontext: " & prmKontext & vbCrLf & _
"Prozedur: " & prmProzedur & vbCrLf & vbCrLf & _
"Fehlernummer:" & Str(prmErrNumber) & vbCrLf & _
"Fehlernachricht: " & prmError & vbCrLf & vbCrLf & vbCrLf & _
"Bitte benachrichtigen Sie den Programmierer!" & vbCrLf & _
"Der Fehler wurde im Fehlerprotokoll " & strDateiname & _
" registriert."
msgButtons = vbCritical + vbOKOnly
msgTitle = "Fehlernachricht"
msgAntwort = MsgBox(msgPrompt, msgButtons, msgTitle)
msgPrompt = ""
msgButtons = 0
msgTitle = ""
ShowError = msgAntwort
End Function Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. (Brian W. Kernighan) |