Druckereinstellungen per VBA ändern (Teil2)

07/05/2009 - 09:53 von Theis | Report spam
Hallo NG,

mein bereits am 02.05.2009 geschildertes Problem noch einmal strukturierter
dargestellt.
Die Druckerauswahl und -übernahme funktioniert jetzt. Es bleibt das Problem
der Umstellung auf Duplex, wohingegen Randeinstellungen übernommen werden.

Teil 1: Definition einer globalen Variablen 'Drucker' in einem allgemeinen
Modul

Public Drucker As String


Teil2: frmDruckerauswahl
(installierte Drucker werden dargestellt zur Auswahl; Wegschreiben der
Auswahl in die globale Variable 'Drucker'

Private Sub Form_Open(Cancel As Integer)
Dim prtloop As Printer

Me.comDrucker.RowSource = ""
For Each prtloop In Application.Printers
Me.comDrucker.AddItem prtloop.DeviceName
Next prtloop
Me.comDrucker.SetFocus
Me.comDrucker.Dropdown
End Sub

Private Sub btnOK_Click()
If IsNull(Me.comDrucker) Then
MsgBox "Bitte wàhlen Sie einen Drucker aus!!", vbInformation,
"Drucker auswàhlen..."
Me.comDrucker.SetFocus
Me.comDrucker.Dropdown
Exit Sub
Else
Drucker = Me.comDrucker
End If

DoCmd.Close acForm, "frmDruckerauswahl", acSaveNo
End Sub



Teil 3: frmZeugnisdruckHalbjahrAuswahl
(Beim Aufruf des Berichtes wird der Drucker gesetzt)

DoCmd.OpenReport "repZeugnisHalbjahr", acViewPreview, , Bedingung
Reports!repZeugnisHalbjahr.Printer = Application.Printers(CStr(Drucker))



Teil 4: repZeugnisHalbjahr
(Im Bericht werden noch die Einstellungen für Rànder, Duplex, etc. gesetzt.)

Private Sub Report_Open(Cancel As Integer)
With Me.Printer
.TopMargin = mm(8)
.BottomMargin = mm(6)
.LeftMargin = mm(12)
.RightMargin = mm(6)
.Duplex = acPRDPVertical
End With

Und hier liegt das Problem: Die Duplex-Einstellung wird nicht an den
duplexfàhigen Drucker (HP LaserJet 5100DN) weitergegeben.
Im Unterschied zu den im Internet dargestellten Lösungen wird in meinem Fall
der Drucker NICHT Access-weit umgestellt, sondern individuell für den
jeweiligen Bericht. Liegt hier eventuell ein Problem??

Vielen Dank für Eure Hilfe.

Ralf
 

Lesen sie die antworten

#1 Karl Donaubauer
07/05/2009 - 20:09 | Warnen spam
Theis wrote:
...
Die Druckerauswahl und -übernahme funktioniert jetzt. Es bleibt das
Problem der Umstellung auf Duplex, wohingegen Randeinstellungen
übernommen werden.
Teil 1: Definition einer globalen Variablen 'Drucker' in einem
allgemeinen Modul

Public Drucker As String

Teil2: frmDruckerauswahl
(installierte Drucker werden dargestellt zur Auswahl; Wegschreiben der
Auswahl in die globale Variable 'Drucker'

Private Sub Form_Open(Cancel As Integer)
Dim prtloop As Printer

Me.comDrucker.RowSource = ""
For Each prtloop In Application.Printers
Me.comDrucker.AddItem prtloop.DeviceName
Next prtloop
Me.comDrucker.SetFocus
Me.comDrucker.Dropdown
End Sub

Private Sub btnOK_Click()
If IsNull(Me.comDrucker) Then
MsgBox "Bitte wàhlen Sie einen Drucker aus!!", vbInformation,
"Drucker auswàhlen..."
Me.comDrucker.SetFocus
Me.comDrucker.Dropdown
Exit Sub
Else
Drucker = Me.comDrucker
End If

DoCmd.Close acForm, "frmDruckerauswahl", acSaveNo
End Sub


Teil 3: frmZeugnisdruckHalbjahrAuswahl
(Beim Aufruf des Berichtes wird der Drucker gesetzt)

DoCmd.OpenReport "repZeugnisHalbjahr", acViewPreview, , Bedingung
Reports!repZeugnisHalbjahr.Printer > Application.Printers(CStr(Drucker))

Teil 4: repZeugnisHalbjahr
(Im Bericht werden noch die Einstellungen für Rànder, Duplex, etc.
gesetzt.)
Private Sub Report_Open(Cancel As Integer)
With Me.Printer
.TopMargin = mm(8)
.BottomMargin = mm(6)
.LeftMargin = mm(12)
.RightMargin = mm(6)
.Duplex = acPRDPVertical
End With

Und hier liegt das Problem: Die Duplex-Einstellung wird nicht an den
duplexfàhigen Drucker (HP LaserJet 5100DN) weitergegeben.
Im Unterschied zu den im Internet dargestellten Lösungen wird in
meinem Fall der Drucker NICHT Access-weit umgestellt, sondern
individuell für den jeweiligen Bericht. Liegt hier eventuell ein
Problem??



Nicht, dass dir das jetzt helfen würde, aber zur Info:

Testen solltest du es natürlich, aber ich glaube es nicht.
Nur umgekehrt las ich das schon ein paar mal, also,
dass Duplex (oder andere Einstellungen) nur durch das Umstellen
des speziellen Berichtsdruckers funktionierten. s. z.B.
http://groups.google.com/group/micr...e3ec28e8e3

Ich las auch schon mehrfach, dass gerade die Duplex-Eigenschaft bei
manchen Druckern schlicht nicht per Printer-Objekt einstellbar war.
Druckertreiber, Methodik, Schnittstelle? Keine Ahnung, warum.

cu
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
3. SQL Server -Entwickler-Konferenz - Nürnberg im Mai

Ähnliche fragen