Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

verweis "Microsoft Word 14 object library" per vba setzen

Begonnen von trebuh, Januar 25, 2015, 20:40:43

⏪ vorheriges - nächstes ⏩

trebuh

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 

database

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.

DF6GL

Hallo,

1) Late Binding verwenden
2) beim Erstellen einer Word-Instanz den auftretenden Fehler auswerten.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

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.
Freundliche Grüße
MaggieMay

trebuh

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:

  • Echo= Ja
  • Warnmeldungen an= Nein
  • Öffnen Formular (Hintergrundformular)
  • Öffnen Formular 1
  • Setzen Wert
  • Setzen Wert
  • öffnen Abfrage (Logdatei)
  • Maximiern Fenster
  • Fenster schließen (Formular 1)
  • Öffnen Formular 2
  • Maximieren Fenster
  • Kopieren Objekt
  • Kopieren Objekt
  • Öffnen Formular (Login)
  • Maximieren Fenster
  • Warnmeldungen an = Ja

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