If you are sending your reports directly to the printer, here is a way to get the Print Dialog Box to show so you can choose the printer settings. You will notice that the report is opened acPreview but don't worry, it will not become visible on screen. Just follow the instructions.
Use DoCmd.OpenReport method to open the report:
DoCmd.OpenReport "YourReportNameHere", acViewPreview
Now open the Report in design view. Use the following code in the On Activate event of the Report:
Private Sub Report_Activate()
Dim strMsg As String, strTitle As String
strMsg = "There Were No Records Returned for Criteria Entered."
strTitle = " No Matching Records"
On Error Resume Next
If Me.HasData Then
DoCmd.RunCommand acCmdPrint
DoCmd.Close acReport, Me.Name
Else
MsgBox strMsg, vbInformation + vbOKOnly, strTitle
DoCmd.Close acReport, Me.Name
End If
End Sub
The above code also handles the problem if there are no records returned by recordset. So you don't have to use the On No Data event.
The code will cause the Print Dialog Box to open so you can change the print settings, then print the report, close the report, without it ever becoming visible on screen.
HTH
RDH