Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: cyberchris am Februar 23, 2017, 12:38:46

Titel: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: cyberchris am Februar 23, 2017, 12:38:46
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


Titel: Re: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: DF6GL am Februar 23, 2017, 13:22:31
Hallo,

es gibt die ActivePrinter-Eigenschaft:

objWord.ActivePrinter = "AndererDruckername"
Titel: Re: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: cyberchris am Februar 23, 2017, 22:19:33
Vielen Dank!

VG Christoph
Titel: Re: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: cyberchris am Februar 23, 2017, 23:34:40
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
Titel: Re: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: MaggieMay am Februar 24, 2017, 01:29:16
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?
Titel: Re: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: cyberchris am Februar 24, 2017, 09:18:47
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
Titel: Re: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: DF6GL am Februar 24, 2017, 13:49:50
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....
.
.
Titel: Re: Beim Druck eines Worddokuments ausgewählten Drucker verwenden
Beitrag von: cyberchris am Februar 24, 2017, 14:30:25
Ok danke.

Dachte halt ich setze den standard drucker über eine Funktion unabhängig von word.

VG Christoph