Hallo,
ich hab eigentlich vor, alle Attachments eine Mail DB zu lösen.
Dabei bin ich dann auf diesen Beitrag gestoßen
(http://atnotes.de/index.php?topic=22415.0)
der Code dafür sieht so aus:
Dim doc As NotesDocument
Dim rtitem As Variant
'...set value of doc...
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Call o.ExtractFile( "c:\samples\" & o.Source )
Call o.Remove
Call doc.Save( False, True )
End If
End Forall
End If
, und wollte dies auch gleich mal testen. Hab auch das Beispiel in der Hilfe DB gefunden und versucht dieses umzusetzen.
Jedoch gibt er immer bei der Forall Schleife eine Type Mismatch Fehlermeldung aus. Nun ist aber noch die Frage, was ist eigentlich mit dem kleinen "o" ? Es wird nirgends gesetzt noch definiert. Kann mir da jemand weiterhelfen?
mfg
Hallo,
also dass was der "Koehlerbv" angesprochen hat scheint wohl der Grund zu sein.
@Axel: Knallen wird es vermutlich in dem Moment, wo ein RTI ohne embedded objects angefasst wird.
Forall o In rtitem.EmbeddedObjects
kann man nur verwenden, wenn rtitem.EmbeddedObjects nicht empty ist.
Weitere Fehlermöglichkeit, die nicht abgeprüft wirde
Es wird versucht, das Item "Body" zu instantiieren. Dieses muss nicht vorhanden sein. Es wäre hier noch auf rtitem Is Nothing zu prüfen (die Fehlermeldung wäre ohne die Prüfung aber "Object variable not set", ich erwähne das nur der Vollständigkeit halber).
wenn ich da nur Dokumente habe, welche einen Anhang besitzen, läuft das Script einfach durch.
Nun hab ich aber noch die Frage, wie stell ich genau die IF Bedienung`?
der Vorschlag funktioniert ja so nicht, da rtitem ja schon existiert.
rtitem Is Nothing ??
Ich hatte nun mal die Idee
If rtitem.EmbeddedObjects Is Nothing Then
funktioniert jedoch nicht.
Kann bzw. weiß jemand genau mit welchem Befehl und welcher Syntax dies da stehen muss?
Danke
mfg
Hallo,
danke erst einmal für die schnelle Antwort
Mein script sieht nun so aus:
Do Until doc Is Nothing
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
If rtitem.EmbeddedObjects Is array Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Call o.ExtractFile( "c:\samples\" & o.Source )
'Call o.Remove
Call doc.Save( False, True )
End If
End Forall
End If
End If
Set doc=view.GetNextDocument(doc)
Loop
Jedoch sagt er mir nun hier:
If rtitem.EmbeddedObjects Is array Then
Type mismatch fehler
Ich hab es auch mit dem
"Is empty" probiert
=> kam genau die gleiche Fehlermeldung.
Wenn dies aber ein Array ist, sollte dies doch aber funktionieren1 ??
Vielleicht noch ein Tipp!
DAnke
mfg