Hallo liebe Experten,
kann man beim Druck eines Word-Dokuments den Drucker vorgeben, mit dem gedruckt werden soll? Also abweichend vom Standard-Drucker wie es in Windows eingestellt ist?
In einem Access-Formular kann ich den Drucker auswählen, in dem ich ein Drop-Down erstelle:
Dim drucker As Printer
cmbDrucker.RowSource = ""
For Each drucker In Application.Printers
cmbDrucker.AddItem drucker.DeviceName
Next drucker
Danach öffne ich ein Word-Dokument und befülle es wie folgt:
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
With objWord
...
..
End With
Gedruckt wird das Dokument wie folgt:
objWord.ActiveDocument.PrintOut
Ich benötige aber nicht immer den Standard-Windows-Drucker.
Kann man das steuern?
Vielen Dank
Christoph
Hallo,
es gibt die ActivePrinter-Eigenschaft:
objWord.ActivePrinter = "AndererDruckername"
Vielen Dank!
VG Christoph
Hallo,
ich habe festgestellt, dass durch diese Funktion der Standarddrucker in Windows dauerhaft geändert wird.
Gibt es keine temporäre Funktion?
In diesem Fall muss ich den Standard-Drucker irgendwie auslesen und nach dem Druck somit wieder zurücksetzen.
VG Christoph
Hi,
so wie du den Standard-Drucker setzen kannst, lässt er sich natürlich auch vorher auslesen, zwischenspeichern und anschließend wieder zurücksetzen.
Was genau ist deine Frage dazu?
Hallo,
bin nur etwas verwundert, da ich in einer anderen Thematik eigentlich das ähnlich mache und hier wird der Windows Standard-Drucker dadurch nicht verändert. Unterschied hier: Druck eines Berichts innerhalb von Access:
If cmbDrucker.Value <> -1 And Not IsNull(cmbDrucker.Value) Then
Application.printer = Application.Printers(cmbDrucker.Value)
End If
DoCmd.OpenReport "PMDB-Auszug_XS", acViewNormal, , PMFilter, , sOrder
DoCmd.Close acReport, "PMDB-Auszug_XS", acSaveNo
Application.printer = Nothing
Aber wenn das mit einer externen Anwendung so nicht funktioniert, dann frage ich vorher den Standard-Drucker ab und setze ihn danach wieder zurück.
Hast du dafür zufällig den Code um den Standard-Drucker auszulesen?
Gruß Christoph
Hallo,
der "Standard-Drucker" ist derjenige, der vor der Druckeränderung bekannt ist:
Dim strDrucker as String
strDrucker = objWord.ActivePrinter '"Standarddrucker" merken
objWord.ActivePrinter = "AndererDruckername"
.
.
.
objWord.ActivePrinter = strDrucker 'Drucker zurücksetzen.
Word hat halt andere Funktionalität als Access....
.
.
Ok danke.
Dachte halt ich setze den standard drucker über eine Funktion unabhängig von word.
VG Christoph