ALSO: Wenn Du per ws.EditDocument ein Dokument in den "Focus" holst, und das Dokument vorher schon offen war, dann "rutscht" es quasi ins Frontend.
Also: doc1 is im Client geöffnet als uidoc1. Wenn Du jetzt aus doc2 heraus den folgenden Code ausführst:
Set uidoc1a = ws.EditDocument( True, doc1 ), dann holst Du das doc1 in den Vordergrund und hast eine Referenz darauf. Jetzt kannst Du z.B. ein "DoNotOpen = True" irgendwo hinterlegen, was im QueryOpen von doc1 abgefragt wird, und verhindert, dass das Dokument überhaupt geöffnet wird, wenn es nicht bereits geöffnet ist. Wenn dann Dein uidoc1a nach dem Aufruf nothing ist, weißt Du, dass das Dokument nicht offen war, und alles ist gut.
Und jetzt kommt der Bug: Wurde doc1 seit dem Erstellen nicht mindestens einmal geschlossen und wieder geöffnet, dann wird die Zeile Set uidoc1a = ws.EditDocument( True, doc1 ) IMMER eine neue Instanz des selben Dokuments öffnen, egal ob es bereits offen ist, oder nicht -> Du bekommst dann fälschlicherweise die Info, dass es NICHT geöffnet ist...
Ich habe das aktuell in mehreren Datenbanken drin, und alle Eventualitäten abzufangen, und eine Fehlermeldung zu zeigen, wenn dieser "Dokument ist geöffnet, wurde aber noch nie gespeichert"- Fall eintritt, sind mehrere hundert Zeilen Code... Deshalb meinte ich "SEHR tricky"...