jodstrr2
asked on
Automatically Print report to specific printer but did not set it back to the default print
Hi Experts,
I was just too quick to close my last question before I notice this problem. (My last question was "Automatically Print Report to a specific Printer") and Helen Feddema and Dodahd gave me the answer which works to print to the specific print but I notice that after I print this specific report to the specific printer, and tried to print other report, it seems the system did not reset the second report that I tried to print back to my default printer. Below is all the code that I'm using in the program:
In the Module is :
Public Sub PrintToSpecificPrinter(str Printer As String, strReport As String)
'Created by Helen Feddema 12-Feb-2010
'Last modified by Helen Feddema 12-Feb-2010
On Error GoTo ErrorHandler
Dim prtCurrent As Printer
Dim prtDefault As Printer
'Dim strPrinter As String
'Save current default printer
Set prtDefault = Application.Printer
Debug.Print "Current default printer: " & prtDefault.DeviceName
'Select a specific printer as new default printer
Application.Printer = Printers(strPrinter)
'Print the report
DoCmd.OpenReport strReport
'Set printer back to former default printer
Application.Printer = prtDefault
ErrorHandlerExit:
Exit Sub
ErrorHandler:
MsgBox "Error No: " & Err.Number & "; Description: " & _
Err.DESCRIPTION
Resume ErrorHandlerExit
End Sub
In my OnClick Event is :
Private Sub Command18_Click()
On Error GoTo Err_Command18_Click
Dim stdocname As String
Dim stCriteria As String
Dim strReport As String
Dim strPrinter As String
strPrinter = strdocname
strPrinter = "AA_ABCE_CL4650_122"
Form_frmPrintedFormsAll.Ho ldAnyData = Me.NameEntered
Form_frmPrintedFormsAll.No te = Me.AddNote
Form_frmPrintedFormsAll.Re cordNo = Me.RecordNo
If IsNull(NameEntered) Or IsNull(RecordNo) Then
MsgBox "Please enter all informations before proceeding."
Exit Sub
Else
stCriteria = "CHRecord = '" & Me.RecordNo & "'"
strReport = "rptFileRequest"
Call PrintToSpecificPrinter(str Printer, strReport)
End If
Exit_Command18_Click:
DoCmd.Close acForm, "frmParmFileRequest"
Exit Sub
Err_Command18_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Command18_Click
End Sub
My default printer is "AA_ACEE_CL4530_135" but it prints everythig to printer "AA_ABCE_CL4650_122" after I print that specific report. Can any one help?
Thanks
I was just too quick to close my last question before I notice this problem. (My last question was "Automatically Print Report to a specific Printer") and Helen Feddema and Dodahd gave me the answer which works to print to the specific print but I notice that after I print this specific report to the specific printer, and tried to print other report, it seems the system did not reset the second report that I tried to print back to my default printer. Below is all the code that I'm using in the program:
In the Module is :
Public Sub PrintToSpecificPrinter(str
'Created by Helen Feddema 12-Feb-2010
'Last modified by Helen Feddema 12-Feb-2010
On Error GoTo ErrorHandler
Dim prtCurrent As Printer
Dim prtDefault As Printer
'Dim strPrinter As String
'Save current default printer
Set prtDefault = Application.Printer
Debug.Print "Current default printer: " & prtDefault.DeviceName
'Select a specific printer as new default printer
Application.Printer = Printers(strPrinter)
'Print the report
DoCmd.OpenReport strReport
'Set printer back to former default printer
Application.Printer = prtDefault
ErrorHandlerExit:
Exit Sub
ErrorHandler:
MsgBox "Error No: " & Err.Number & "; Description: " & _
Err.DESCRIPTION
Resume ErrorHandlerExit
End Sub
In my OnClick Event is :
Private Sub Command18_Click()
On Error GoTo Err_Command18_Click
Dim stdocname As String
Dim stCriteria As String
Dim strReport As String
Dim strPrinter As String
strPrinter = strdocname
strPrinter = "AA_ABCE_CL4650_122"
Form_frmPrintedFormsAll.Ho
Form_frmPrintedFormsAll.No
Form_frmPrintedFormsAll.Re
If IsNull(NameEntered) Or IsNull(RecordNo) Then
MsgBox "Please enter all informations before proceeding."
Exit Sub
Else
stCriteria = "CHRecord = '" & Me.RecordNo & "'"
strReport = "rptFileRequest"
Call PrintToSpecificPrinter(str
End If
Exit_Command18_Click:
DoCmd.Close acForm, "frmParmFileRequest"
Exit Sub
Err_Command18_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Command18_Click
End Sub
My default printer is "AA_ACEE_CL4530_135" but it prints everythig to printer "AA_ABCE_CL4650_122" after I print that specific report. Can any one help?
Thanks
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi Helen,
Thanks for your suggested. Yes, it works after I changes like this:
Application.Printer = prtDefault
Debug.Print "Current default printer: " & prtDefault.DeviceName
Thanks
Thanks for your suggested. Yes, it works after I changes like this:
Application.Printer = prtDefault
Debug.Print "Current default printer: " & prtDefault.DeviceName
Thanks
It could be that the default printer was changed somehow (apart from the code), but you can always explicitly set it back to what it should be.
ASKER
Can you give me a little bit more details base on my code above? I'm kind of confusse now.