Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: trebuh am Januar 25, 2015, 20:40:43

Titel: verweis "Microsoft Word 14 object library" per vba setzen
Beitrag von: trebuh am Januar 25, 2015, 20:40:43
Hallo Access-Gemeinde,

es geht um folgenden Fall:
Ich habe in einer Access-Datenbank (access 2010) ein Formular, mit dem ich Daten nach Word (2010) senden kann.
Soweit funktioniert das alles, da der Verweis "Microsoft Word 14 object library" gesetzt ist.
Nun läuft diese Datenbank auch auf Rechnern (mit Access-Runtime 2010) auf denen Word nicht vorhanden ist (Außer Wordpad), und somit der notwendige Verweis nicht vorhanden ist.

Das führt natürlich schon beim starten der Datenbank zu einer Fehlermeldung.

Nun kam mir die Idee, diesen Verweis erst beim öffnen des besagten Formulars zu setzen, und den Button (mit dem das Formular geöffnet wird) zu deakivieren, wenn der notwendige Verweis fehlt (Word also nicht installiert ist).

So wie ich im Internet nun recherchiert habe, müsste es auch möglich sein.

Jedoch bringen mich die verschiedenen Möglichkeiten mit seinen Vor- und Nachteilen eher durcheinander (zumal ich ja auch ein Neuling bin).

Nun wollte ich fragen, ob mir jemand ein detailiertes Codebeispiel geben kann (speziell für meinen Fall)?

Gruß trebuh 
Titel: Re: verweis "Microsoft Word 14 object library" per vba setzen
Beitrag von: database am Januar 26, 2015, 01:37:03
Hallo,

Frage:
ZitatDas führt natürlich schon beim starten der Datenbank zu einer Fehlermeldung.
Und welche Meldung bekommst?
Normalerweise gibt's keine Fehlermeldung wenn dieser Verweis nicht gesetzt ist - außer du führst beim Starten der DB irgendeinen Code aus, der diesen Verweis benötigt.
Ist dem so?
Wenn ja dann kopiere den Code hier rein, ich werd's versuchen.
Titel: Re: verweis "Microsoft Word 14 object library" per vba setzen
Beitrag von: DF6GL am Januar 26, 2015, 09:04:29
Hallo,

1) Late Binding verwenden
2) beim Erstellen einer Word-Instanz den auftretenden Fehler auswerten.
Titel: Re: verweis "Microsoft Word 14 object library" per vba setzen
Beitrag von: MaggieMay am Januar 26, 2015, 10:41:42
Hi,

fehlerhafte Verweise machen den kompletten VBA-Code untauglich, somit ist der Fehler beim Start (unter den gegebenen Umständen) wohl unvermeidbar.

Am einfachsten ist es also, den Empfehlungen von Franz zu folgen. Man könnte natürlich auch das Vorhandensein einer Word-Installation aus der Registry auslesen...
Oder du machst beim Öffnen des Formulars eine "Probezugriff" auf Word, um den Button ggfls. zu deaktivieren. Wichtig dabei ist natürlich - so oder so - eine ordentliche Fehlerbehandlung.
Titel: Re: verweis "Microsoft Word 14 object library" per vba setzen
Beitrag von: trebuh am Januar 26, 2015, 17:20:57
Hallo database,

nun, dann kann es eigentlich nur vom Makro "autoexec" kommen.
Greift jetzt Access automatisch bei diesem Makro auf die Verweise zu, oder liegt es an einem der Befehle in diesem Makro?

Ich muss noch erwähnen, das diese Datenbank für mich von einem Bekannten erstellt worden ist und ich kleinere Details versuche selbst einzubauen, da er selbst beruflich sehr viel zu tun hat (Leider).

In dem Makrocode sind folgende Befehle:

So müsste ich theoretisch den Verweis "Microsoft Word 14 object library" wieder deaktivieren, und eventuell beim öffnen des Hintergrundformulars per VBA abfragen, ob die entsprechende Bibliotek
vorhanden ist. Dies in einem Kontrollkästchen vermerken, und das dann dazu nutzen, den Button (welches das Formular für Wordexport öffnet) deaktiviert (mittels VBA-Code abfrage) und wenn die besagte Bibliotek vorhanden ist, beim beim öffnen des Formulars (Wordexport) den Verweis "Microsoft Word 14 object library" per vba setzen.

(Zumindest so oder so ähnlich?)

Wie muss das von DF6GL erwähnte "Late Binding" ausehen?
Muss das in ein extra Modul?

Gruß trehuh