Was mir direkt aufgefallen ist :
- ProfileDoc ist nicht deklariert.
- Bei den Print-Anweisungen heißt das Objekt dann "ProfilDoc".
Darüber hinaus würde ich mir überlegen, das in eine Textdatei auszugeben. Die Ausgabe ins Log ist doch leicht unübersichtlich.
Ich habs mal schnell zusammengeschrieben, ist allerdings ungetestet und sollte auch noch angepaßt werden (Pfad für Datei, etc.)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dbdir As New NotesDbDirectory("ServerName")
Dim ProfileDoc As NotesDocument
Dim counter As Integer, fileNum As Integer
Dim file As String, outStr As String
file = "C:\export.csv"
fileNum = Freefile()
Open file For Output As fileNum
'Ueberpruefen der Datenbanken
Print"Ueberpruefen der Out of Office"
Set db = dbdir.GetFirstDatabase(DATABASE)
While Not(db Is Nothing)
If counter = 100 Goto ende
If Left(db.FilePath,4) = "Verzeichnis" Then
Set ProfileDoc=db.GetProfileDocument("OutOfOfficeProfile")
If Not (ProfileDoc Is Nothing) Then
'Schreiben des Report
outStr = Cstr(ProfileDoc.GetItemValue("FirstDayOut")(0)) & "," & Cstr(ProfileDoc.GetItemValue("FirstDayBack")(0)) &_
"," & Cstr(ProfileDoc.GetItemValue("$TableCurrentStatus")(0)) & "," & Cstr(ProfileDoc.GetItemValue("BookBusyTime")(0)) &_
"," & Cstr(ProfileDoc.GetItemValue("CurrentStatus")(0)) & "," & Cstr(db.Title)
If outStr <> "" Then
Print #fileNum, outStr
End If
counter = counter + 1
End If
End If
Set db = dbdir.GetNextDatabase
Wend
Close fileNum
ende:
'Schlussmeldung
Print "Ueberpruefung beendet"
So ähnlich mache ich das auch, allerdings nicht mit einem separaten Objekt (das kann ja kaum anders sein als das DB-Objekt, dem ich gerade Server und FilePath abgepresst habe.
'Loop thorugh all databases in the Notes data directory:
Set dbInProcess = dbdirComplete.GetFirstDatabase (DATABASE)
While Not dbInProcess Is Nothing
Call dbInProcess.Open (dbInProcess.Server, dbInProcess.FilePath)
Set repInfo = .....................
Bernhard