Feststellen, ob Word geöffnet ist

Hallo zusammen!
Ich bastel gerade an einer Access-Datenbank, die u.a. eine Serienbrieffunktion beinhaltet und dazu Microsoft Word ansteuert.
Das klappt auch alles wunderbar, außer wenn Word bereits vorher vom Anwender geöffnet wurde. Dann bekomme ich bei

Set mobjWord = New Word.Application

eine Fehlermeldung. Nun suche ich nach einer Möglichkeit, festzustellen ob Microsoft Word bereits vom Andwender geöffnet wurde und möglichst eine Referenz darauf zu bekommen um es zu benutzen.

Danke für jede Hilfe!

Hendrik.

Das klappt auch alles wunderbar, außer wenn Word bereits
vorher vom Anwender geöffnet wurde. Dann bekomme ich bei

Set mobjWord = New Word.Application

kannst Du den Fehler nicht über ON ERROR abfangen? Wenn die Applikation dann schon geöffnet ist, erzeuge doch einfach ein neues Document-Objekt, das sollte dann gehen.

Marian

Hi Marian!
Der „Fehler“ wird von ON ERRROR irgendwie nicht abgefangen! Das ist auch ein ganz komischer Fehler, muß ich wohl mal näher beschreiben:

Erst kommt ein PopUp mit einer unvollständigen Fehlermeldung (sowas wie „Word konnte nicht“ und dahinter so eine Art Kästchen-Zeichen), dann wird ein zweites Word-Fenster geöffnet. Dann klappt erstmal soweit alles, nur beim Schließen von Word kommen ein paar sehr störende Abfragen („Möchten Sie die Änderungen an Normal.dot speichern?“ usw.).

Warum man das nicht abfangen kann, weiß ich auch nicht genau. Vermutlich erzeugt nicht die VB-Zeile den Fehler, sondern erst Word selber.

Trotzdem Danke für Deine Hilfe! :smile:

Hendrik.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Hendrik,

also ich verwende die folgende Möglichkeit und bisher hat die auch so geklappt:

Dim WdApp As Word.Application
Const Err_LäuftNicht As Long = 429

On Error Resume Next

'Erstmal probieren eine laufende Instanz von Word zu holen
Set WdApp = GetObject(, „Word.Application“)

'Wenn keine lfd. Instanz gefunden wurde, Fehlercode 429, dann
'neue Instanz erstellen
If Err = Err_LäuftNicht Then Set WdApp = New Word.Application

'Wenn das auch nicht geklappt hat, ist vielleicht gar kein Word
'Installiert?
If WdApp Is Nothing Then
MsgBox „Konnte keine Verbindung zu Word herstellen. Es ist zu prüfen ob Word korrekt installiert wurde.“, vbCritical, „Fehler“
Exit Sub
End If

Tschüß

Daniel

Warum man das nicht abfangen kann, weiß ich auch nicht genau.
Vermutlich erzeugt nicht die VB-Zeile den Fehler, sondern erst
Word selber.

Dann öffne doch gleich ein Word.Document statt Word.Application. Wenn Du sowieso nur das Dokument brauchst, ist die Application nicht wirklich notwendig. Word erkennt dann selber, dass die Anwendung noch nicht läuft (oder sollte das zumindest). Wenn Die Anwendung schon läuft, sollte ein neues Dokument erzeugt werden, andernfalls wird Word gestartet.

Gruß

Marian

Hi Daniel,

super klasse, das funktioniert ja 1A ! *freu*
Also, vielen Dank für deine Hilfe!
Eine Sache hätte ich noch: Ab und zu (hab noch kein System erkannt) meint Word anscheinend, Access nochmal öffnen zu müssen und macht dann irgendwie Chaos…die Felder einer Abfrage, die eigentlich aus dem Formular gefüllt werden, sind dann natürlich nicht gefüllt usw… Was könnte das sein…? Ich weiß, ist jetzt waaahnsinnig präzise, aber vielleicht ist das ja irgendwie typisch (kenne mich mit Access nicht aus)!

Gruß,

Hendrik

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Marian!

Ich muß aber eine bestimmte Datei öffnen… wie geht das dann…? Ist aber nur interesse halber, die Lösung von Daniel funktioniert ja.

Trotzdem nochmal vielen Dank für deine Hilfe! :smile:

Hendrik.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Hendrik,

freut mich, dass es dich freut :wink:

Mit Access kenn ich mich leider überhaupt nicht aus, kann dir in der Beziehung also leider überhaupt nicht weiterhelfen.

Tschüß

Daniel