Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!
ZitatDoCmd.OpenReport "DeinBericht", acViewDesign, , , acHiddenIn einer Klick-Prozedur zum Drucken eher weniger geeignet. Damit würde man jedesmal den Default Printer eines Reports unnötiger weise neu zuweisen und dann den Report abspeichern.
Set Reports("DeinBericht").Printer = Application.Printers(strDrucker)
DoCmd.Close acReport, "DeinBericht", acSaveYes
DoCmd.OpenReport "DeinBericht", acViewNormal DoCmd.OpenReport "DeinBericht", acViewDesign, , , acHidden
Private Sub btnDrucken_Click()
On Error GoTo ErrHandler
Dim rpt As Report
Dim strAlterDrucker As String
DoCmd.OpenReport "DeinBerichtsname", acViewDesign, , , acHidden
Set rpt = Reports("DeinBerichtsname")
strAlterDrucker = rpt.Printer.DeviceName
Set rpt.Printer = Application.Printers("HP LaserJet M404") ' <- Hier deinen Drucker eintragen
DoCmd.Close acReport, "DeinBerichtsname", acSaveYes
DoCmd.OpenReport "DeinBerichtsname", acViewNormal ' Druckt sofort
DoCmd.OpenReport "DeinBerichtsname", acViewDesign, , , acHidden
Reports("DeinBerichtsname").Printer = Application.Printers(strAlterDrucker)
DoCmd.Close acReport, "DeinBerichtsname", acSaveYes
ExitHandler:
Set rpt = Nothing
Exit Sub
ErrHandler:
If Err.Number = 2501 Then
Resume Next
Else
MsgBox "Fehler " & Err.Number & ": " & Err.Description
End If
Resume ExitHandler
End SubDim p As Printer
For Each p In Application.Printers
Debug.Print p.DeviceName
Next pPrivate Sub btnDruckenMitListe_Click()
On Error GoTo ErrHandler
Dim rpt As Report
Dim p As Printer
Dim strDrucker As String
For Each p In Application.Printers
strDrucker = strDrucker & p.DeviceName & ";"
Next p
strDrucker = InputBox("Welchen Drucker möchtest Du verwenden?" & vbCrLf & _
Replace(strDrucker, ";", vbCrLf), "Drucker wählen")
If strDrucker = "" Then Exit Sub ' Abgebrochen
DoCmd.OpenReport "DeinBericht", acViewDesign, , , acHidden
Set Reports("DeinBericht").Printer = Application.Printers(strDrucker)
DoCmd.Close acReport, "DeinBericht", acSaveYes
DoCmd.OpenReport "DeinBericht", acViewNormal
ExitHandler:
Exit Sub
ErrHandler:
If Err.Number <> 2501 Then MsgBox Err.Description
Resume ExitHandler
End SubImplements ICCFilterCallbacksintegrieren mußt. Das erstellt eine Schnittstelle für "Außenstehende" (hier dem clsCCFilter-Modul), nur auf bestimmte, genormte Subs zuzugreifen. Die Norm definiert das ICCFilterCallbacks-Modul.Option Compare Database
Option Explicit
Implements ICCFilterCallbacks
Private ObjFilter As clsCCFilter
Private Sub Form_Load()
Set ObjFilter = New clsCCFilter
ObjFilter.FilterUseCallbackBeforeFilter = True
ObjFilter.InitControls Me
End Sub
Private Sub ICCFilterCallbacks_FilterAfterApply(ByVal strFilter As String)
End Sub
Private Sub ICCFilterCallbacks_FilterBeforeApply(strFilter As String)
Debug.Print strFilter
End Sub strFilter = strFilter & IIf(strFilter <> "", " AND ", "") & " (Ausgabe_Zubehoer > 1)"
