[VBA Access2000] Word aufrufen, Makroname mitgeben

Liebe ExpertInnen,

der Titel sagt schon fast alles - außer dass ich mir inzwischen einen Wolf gesucht habe.

Ich möchte ein Word-Dokument aus einer Access-Anwendung heraus öffnen, dabei soll ein Makro aufgerufen werden, das eine .txt einliest und selbige frisiert. AutoExec und AutoOpen helfen nicht weiter, weil das Makro nur beim Erstellen des Dokuments laufen soll, beim nächsten Öffnen, zB zum Drucken, aber nicht. Wer weiß was?

Gruß Ralf

Ich möchte ein Word-Dokument aus einer Access-Anwendung heraus
öffnen, dabei soll ein Makro aufgerufen werden, das eine .txt
einliest und selbige frisiert. AutoExec und AutoOpen helfen
nicht weiter, weil das Makro nur beim Erstellen des Dokuments
laufen soll, beim nächsten Öffnen, zB zum Drucken, aber nicht.

Hallo Ralf,

im anderen Beitrag sah ich schon den MS-Link zu AutoExec und AutoOpen,
aber da ich beides nicht kenne habe ich wenig beim Überfliegen des Artikels verstanden.

In Excel benutze ich nur Workbooks_Open und in Word Document_Open,
AutoOpen gabs/gibts wohl auch in Excel aber noch nie benutzt.

Wie auch immer, wenn du dich damit auskennst, könntest du in deine autoopen oder autoexce einbauen, daß sie beim ersten Benutzen eine Variable in ActiveDocument.CustomDocumentProperties setzen.
Bei späteren Aufrufen kann man dann ja das Vorhandensein dieser Variablen prüfen, sie wird mit dem Dokument gespeichert.

Andere Möglichkeit ist, du läßt das Word-Dokument Makrofrei und steuerst das alles von Access aus.
Ansätze in Access-Vba:
Dim appWord as new Word.application
with appWord
.Visible=true
.document.add
open „meineDatei.txt“ for input as #1

oder
Dim appWord as Word.application
on error resume next
set appword=getobject(,„Word.Application“)
if err.number0 then set appword=createobject(„Word.Application“)
with appword

Gruß
Reinhard

Hallo, Ralf!

Ich möchte ein Word-Dokument aus einer Access-Anwendung heraus
öffnen, dabei soll ein Makro aufgerufen werden, das eine .txt
einliest und selbige frisiert. AutoExec und AutoOpen helfen
nicht weiter, weil das Makro nur beim Erstellen des Dokuments
laufen soll, beim nächsten Öffnen, zB zum Drucken, aber nicht.

Was für ein Makro soll aufgerufen werden? Wo liegt es? Hast Du es in Access? Vermutlich nicht, sonst ja nicht diese Frage…

Also vermute ich folgendes: Du hast eine Vorlage, auf derer Basis Du das neue Dokument erzeugst. Und in dieser Vorlage ist auch schon das Makro drin. Unter Access wird’s dann vielleicht so aussehen:

dim docZiel as word.document
dim appWord as new word.application
Set docTest = appWord.Documents.Add("C:\DeinTemplateMitMakro.dot")
' alternativ gehr auch: Documents.Open gefolgt von docTest.SaveAs...

Jetzt kommt der Makroaufruf:

docTest.Application.Run "DeinMakro"
' optional kannst Du noch bis zu 30 Paramter mitgeben!

Gruß, Manfred

Moin, Manfred,

docTest.Application.Run „DeinMakro“

so einfach kann das Lehm sein… Dass ein Word-Makro einfach aus Access gestartet wird, hat mein Vorstellungsvermögen überstiegen. Heißen Dank!

Gruß Ralf

Moin, Reinhard,

Manfreds Lösung liegt mir für den Moment näher, dennoch danke für

ActiveDocument.CustomDocumentProperties

Das werde ich demnächst bestimmt verwenden.

Gruß Ralf