Hallo ins Forum,
Ich bin noch relativer VBA Anfänger und habe eine Frage.
Ich habe seit längerer Zeit ein Makro welches in der Inbox von Lotus Notes 8.5 die Emails der letzten 4 Tage auf einen bestimmten Betreff untersucht und wenn dieser gefunden wird legt es ein angehängtes pdf und eine Excel Datei ab.
Das hat auch immer super funktioniert als die attachements noch im Body ankamen. Jetzt hat der Absender irgendetwas geändert. Die Attachements sind jetzt oberhalb des Body (ich glaube orig heisst das Feld)und es ist ein Strich dazwischen und schon funktioniert das Makro (Fehler 13 bei:
Set LNItem = LNDoc.GETFIRSTITEM("Body")) nicht
mehr( evtl ist es kein RTF mehr?). Kann mir jemand dabei helfen es zu reparieren oder mit Tipps geben wo ich sinnvolle Informationen zu dieser Problematik finde?
Vielen Dank bereits jetzt
Hier der bisherige Code:
Private Sub DOCAuslesen()
Dim intErgebnis As Integer
Dim objNotes As Object
Dim LNdb As Object
Dim LNView As Object
Dim LNDoc As Object
Dim LNItem As Object
Dim strSubject As String
Dim LNWorkspace As Object
Dim LNAttachment As Variant
'--- Email aufbauen
Set objNotes = GetObject("", "Notes.NotesSession")
'--- Zu smailbox wechseln
UserName = objNotes.UserName
MailDbName = Left$(UserName, 1) _
& Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
server = objNotes.GetEnvironmentString("MailServer", True)
MailDbName = "name.nsf"
'Verweisen auf die gewünschte Datenbank
Set LNdb = objNotes.GETDATABASE(server, MailDbName)
'Lotus Notes Workspace Objekterstellung zur Steuerung der GUI
'(Hierdurch kann der geöffnete Notes Client ferngesteuert werden.)
Set LNWorkspace = CreateObject("notes.notesuiworkspace")
LNWorkspace.OpenDatabase server, MailDbName
If Not (LNdb Is Nothing) Then
'Der Zugriff erfolgt auf die InBox
Set LNView = LNdb.GETVIEW("$Inbox")
If Not (LNView Is Nothing) Then
'Aktualsieren des Views
Call LNView.Refresh
'Einlesen des ersten Mail-Dokuments
Set LNDoc = LNView.GETFIRSTDOCUMENT
Do While Not LNDoc Is Nothing
'Sicherung des nächsten Maildokuments für den Fall der Löschung des aktuellen
Set LNnextDoc = LNView.GETNEXTDOCUMENT(LNDoc)
'Öffnen des aktuellen Mailfiles in der GUI
'Subject der Mail ermitteln
Set LNItem = LNDoc.GETFIRSTITEM("Subject")
Set LNItemDatum = LNDoc.GETFIRSTITEM("DeliveredDate")
betreff = LNItem.Text
datum = CDate(Left(LNItemDatum.Text, 10))
'Es werden die Mails der letzten 4 Tage geprüft, falls auf ein Wochenende/Feiertag fällt
If datum < Date - 4 Then
Exit Do
End If
If (betreff Like "*NameDOC*") Then
If LNDoc.HasEmbedded Then
Set LNItem = LNDoc.GETFIRSTITEM("Body")
For Each LNAttachment In LNItem.EmbeddedObjects
LNAttachment.ExtractFile (Ablagepfad + LNAttachment.Name)
Next
End If
Call LNDoc.PutInFolder("Ablage", True)
Call LNView.Refresh
Set LNDoc = LNView.GETFIRSTDOCUMENT
End If
'Zeiger auf das nächste Mail-Dokument setzen
'so funktioniert es leider nicht; daher workaround und wieder Beginn ganz vorne
Set LNDoc = LNnextDoc
Loop
End If
End If
|