Word drucken

26/02/2009 - 16:05 von Dirk Spieß | Report spam
Hallo zusammen,

stehe im Moment vor einem Problem, welches wahrscheinlich nicht mal eines
ist.
Ich möchte aus Access heraus mit einem Button folgenden Ablauf:

1. Abfrage ausführen
2. Prüfen ob Word geöffnet ist, wenn nein, dann öffnen, wenn ja,
3. neue Word Instanz öffnen
4. Word Dokument als neues Dokument (Dokument 1) öffnen
5. diese Dokument ausdrucken
6. die geöffnete Instanz von Word wieder schließen
7. Dokument 1 nicht speichern

Bis 4. ist es kein Problem, dann komme ich nicht weiter. Kann mir jemand
helfen?

Mein bisheriger Code:

Dim stDocName As String

stDocName = "Hauptdaten Sch Abfrage"
DoCmd.RunMacro stDocName

Dim appWD As Object

On Error Resume Next
Set appWD = GetObject(, "Word.Application")
If Err.Number <> 0 Then ' Word làuft nicht
Err.Clear
Set appWD = CreateObject("Word.Application") ' Neue Instanz von Word öffnen
Else
appWD.Activate ' Word Aktivieren
End If
appWD.Documents.Add Template:=Left(CurrentDb.Name, Len(CurrentDb.Name) -
Len(Dir(CurrentDb.Name))) & " \Dokumente\Vorlagen\Anschreiben.doc"
appWD.Visible = True

Vielen Dank an alle

Gruß Dirk
 

Lesen sie die antworten

#1 Henry Habermacher
27/02/2009 - 08:29 | Warnen spam
Hallo Dirk

Dirk Spieß wrote:
Ich möchte aus Access heraus mit einem Button folgenden Ablauf:

1. Abfrage ausführen
2. Prüfen ob Word geöffnet ist, wenn nein, dann öffnen, wenn ja,
3. neue Word Instanz öffnen
4. Word Dokument als neues Dokument (Dokument 1) öffnen
5. diese Dokument ausdrucken
6. die geöffnete Instanz von Word wieder schließen
7. Dokument 1 nicht speichern

Bis 4. ist es kein Problem, dann komme ich nicht weiter. Kann mir jemand
helfen?



Starte den Makro Recorder in Word, sobald Du Punkt 4 erreicht hast. Wenn
Word nicht sichtbar ist, mach es im Direktfenster über
appWD.Visible
sichtbar. Nach dem Drucken und schliessen des Dokumentes stopst Du den Makro
Editor und schaust Dir im VBA Editor von Word an, was da als Makro erzeugt
wurde. Das nimmst Du dann nach Access rüber und setzt dort vorne ein:
With appWD
... hier der kopierte Code
und dahinter ein
End With
hin. Überall wo Application oder Word drin steht, schreibst Du appWD drüber.
Musst halt da und dort noch ein bisschen anpassen. Und da Du mit LateBinding
arbeitest, musst Du alle Word Konstanten (die die mit wd...) beginnen durch
den realen Wert ersetzen, den Du in Word im VBA Editor oder im Objektbrowser
abfragen kannst.

Gruss
Henry

Gruss
Henry


Die NEK1 verpasst? Kein Problem. Details in FAQ
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen