Hallo Experten,
ich hab eine ganz wunderliche Sache, aber vielleicht kennt Ihr das Problem oder könnte die Verwunderung aufklären:
Folgender Code:
Set doc = doccol.GetFirstDocument
While Not doc Is Nothing
dummy = doc.HasEmbedded
If doc.HasEmbedded Then
Set rtitem = doc.GetFirstItem("Body")
embobjs = rtitem.EmbeddedObjects
Forall embobj In embobjs
[..]
End Forall
End If
Set doc = doccol.GetNextDocument(doc)
Wend
Alles anzeigen
Bei Dokumenten die keine eingebetteten Objekte (es geht mir um die Anhänge) haben, fällt der Code mit einem Type-Mismatch in der Forall-Zeile auf die Nase.
Bis dahin sollte er aber eigentlich gar nicht mehr kommen, da doc.HasEmbedded = false ist.
Schaue ich mir das ganze im Debugger an stelle ich folgendes fest:
Wenn ich mir die Properties des doc-Objekts im Debugger _nicht_ angeschaut habe, dann wird 'dummy' mit true befüllt. <-- was falsch ist.
Schaue ich mir zuerst die Properties des doc-Objekts an und lasse dann den Code erst bis zur Zeile 'dummy = doc.HasEmbedded
' bzw. zur nachfolgenden IF-Anweisung weiterlaufen, dann wird HasEmbedded auch korrekt mir 'false' verarbeitet.
Es scheint also abhängig davon zu sein, ob ich mir den Wert von doc.Embedded vorher schonmal im Debugger angeschaut habe. Wenn nicht, wird fäschlicherweise "true" geliefert.
Hab ich was grundsätzliches übersehen?
Gibt es dort ein bekanntes Problem?
Nachtrag: Das Problem scheint nicht grundsätzlich aufzutreten, sondern nur bei vereinzelten Dokumenten (denen ich aber keine Besonderheit ansehen kann).