Eingebundenes Word-Dokument prüfen, ob bereits geöffnet

13/02/2008 - 08:17 von Alexander Früh | Report spam
Hallo NG,

ich habe in meiner Access-Anwendung ein Word-Dokument als Vorlage für
bestimmte Berichte eingebunden.
Wenn ich nun einen solchen Bericht drucken möchte, starte ich eine
Word-Instanz (sofern keine offen ist) aus Access heraus, drucke das Ding und
schließe danach Word wieder (sofern keines offen war).
Da aber diese Anwendung mehrere Personen benutzen, kann es halt passieren,
dass bereits jemand genau das gleiche macht und dieses Word-Dokument eben
gesperrt ist.
Wie kann ich dieses Ereignis abfangen, und der Anwendung sagen, dass
entweder gewartet werden soll, bis das Word-Dokument wieder frei ist, oder
dass eine schreibgeschützte Kopie verwendet werden soll, da ich meine
Änderungen sowieso nicht speichern möchte.
Kann mir jemand helfen?
Vielen Dank schon mal im voraus.

Gruß Alex
 

Lesen sie die antworten

#1 Carsten Sekulla
13/02/2008 - 08:29 | Warnen spam
Hi Axel

Word-Instanz (sofern keine offen ist) aus Access heraus, drucke das Ding
und
schließe danach Word wieder (sofern keines offen war).



würde ich nicht machen. Ich nutze immer ein eigene Word-Instanz, da
eine bereits geöffnetes gesperrte sein kann, z. B. durch einen offenen
Dialog.
Die zusàtzlichen Ressourcen sind so dolle nicht, da ein Großteil gemeinsam
genutzt wird.

Damit reduzierts du schon die Möglichkeiten, das andere deine Instanze
nutzen.
Beim Schliessen kannst du die Anzahl der offenen Dokumente testen.

if oWW.Documents.count=1 then oWW.Quit wddonotsavechanges

oder du nutzt WithEvents Documents.Open /New und unterbindest das
Nutzen deiner Instanz in der Zeit wo du deinen Bericht ausdruckst.


Wie kann ich dieses Ereignis abfangen, und der Anwendung sagen, dass
entweder gewartet werden soll, bis das Word-Dokument wieder frei ist, oder
dass eine schreibgeschützte Kopie verwendet werden soll, da ich meine
Änderungen sowieso nicht speichern möchte.



Hier würde ich mir in %temp% erst eine lokale Kopie anlegen (ggf. mit einem
anderen eindeutigen Name)
und diese für den Bericht nutzen und anschließend löschen.

mfg CS

Ähnliche fragen