Hallo,
Ich habe den folgenden Code erstellt:
Er wird taeglich von einem Scheduler laufen gelassen und erfuellt kurz gesagt folgendes: Von einen Tool genannt Impropmptu wird ein bestimmter Datebankextrakt erzeugt und in einer xls Datei gespeichert. Des weiteren sollen alle auftretenden Fehler in einer csv Logdatei protokolliert werden (Mit fehlern ist hier gemient Fehler mit Datenbank Connect etc sowie Fehler beim Erstellen der xls Datei)
Genau da liegt das Probelm
Die Zeile on error goto ErrMess wird immer nur angestossen wenn es Problemem mit der Datenbank gab. Alle
Fehler welche durch Fileoperationen entstehen (File kann nicht gespeichert werden, Ordner existiert nicht, Kein schreibzugriff etc) werden einfach nicht protokolliert.
Kann mir jemand sagen was ich falsch mache, oder wo ich in meinem Code ansetzen muss dass auch diese Fehler protokolliert werden?
Denke mal ich muss hier ansetzten ,denn diese Zeilen speichern den Extract in dem xls File,aber ich weiss einfach nicht wie: Set objImpRep = objImpApp.ActiveDocument
objImpRep.ExportExcelWithFormat strfilename
objImpRep.CloseReport
Wass ich also will ist wenn fehler beim speichern, dann auch diesen Fehler protokollieren.
Vielen Dank im Voraus fuer Tipps
Edit by Agent: VB-Tag hinzugefügt
Ich habe den folgenden Code erstellt:
Visual Basic-Quellcode
- Sub Main()
- 'variables
- Dim strSubject as string
- Dim strbody as string
- Dim strTo as string
- Dim strprompt as string
- Dim strfileloc as string
- Dim strfilename as string
- Dim Logfile as string
- 'objects
- Dim objImpApp As object
- Dim objImpRep As Object
- Dim objOutlookEmail As Object
- '
- on error goto errmes
- '
- strfileloc = "K:\xl\Schemes\"
- strprompt = Format(CStr(CVar(Date)-1),"dddd, d Mmmm")
- strfilename = strfileloc + "Schemes for " & strprompt & ".xls"
- Logfile = "C:\MacroLog.csv"
- '
- Open Logfile For APPEND As #1
- Write #1, Format(DATE,"yyyy-MM-dd"),Format(Time,"HH:mm:ss"), "Nefarious Schemes Start"
- Close #1
- '
- Set objImpApp = CreateObject("CognosImpromptu.Application")
- objImpApp.OpenCatalog "\\Acmefile01\cognos\catalogues\sql.cat","Creator",,,,1
- Set objImpRep = objImpApp.OpenReport ("\\Acmefile01\cognos\reports\World Domination Plans.imr")
- Set objImpRep = objImpApp.ActiveDocument
- objImpRep.ExportExcelWithFormat strfilename
- objImpRep.CloseReport
- objImpApp.Quit
- Set objImpApp = Nothing
- Set objImpRep = Nothing
- '
- endmac:
- Open Logfile For Append As #1
- Write #1, Format(DATE,"yyyy-MM-dd"),Format(Time,"HH:mm:ss"), "Nefarious Schemes End"
- Close #1
- Exit Sub
- '
- ErrMes:
- Open Logfile For Append As #1
- Write #1, Format(DATE,"yyyy-MM-dd"),Format(Time,"HH:mm:ss"), "Error " & Err & " @ line: " & Erl & " - " & Error$
- Close #1
- Resume endmac
- End Sub
Er wird taeglich von einem Scheduler laufen gelassen und erfuellt kurz gesagt folgendes: Von einen Tool genannt Impropmptu wird ein bestimmter Datebankextrakt erzeugt und in einer xls Datei gespeichert. Des weiteren sollen alle auftretenden Fehler in einer csv Logdatei protokolliert werden (Mit fehlern ist hier gemient Fehler mit Datenbank Connect etc sowie Fehler beim Erstellen der xls Datei)
Genau da liegt das Probelm
Die Zeile on error goto ErrMess wird immer nur angestossen wenn es Problemem mit der Datenbank gab. Alle
Fehler welche durch Fileoperationen entstehen (File kann nicht gespeichert werden, Ordner existiert nicht, Kein schreibzugriff etc) werden einfach nicht protokolliert.
Kann mir jemand sagen was ich falsch mache, oder wo ich in meinem Code ansetzen muss dass auch diese Fehler protokolliert werden?
Denke mal ich muss hier ansetzten ,denn diese Zeilen speichern den Extract in dem xls File,aber ich weiss einfach nicht wie: Set objImpRep = objImpApp.ActiveDocument
objImpRep.ExportExcelWithFormat strfilename
objImpRep.CloseReport
Wass ich also will ist wenn fehler beim speichern, dann auch diesen Fehler protokollieren.
Vielen Dank im Voraus fuer Tipps
Edit by Agent: VB-Tag hinzugefügt
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Agent“ ()