Avatar of jodstrr2
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(strPrinter 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.HoldAnyData = Me.NameEntered
    Form_frmPrintedFormsAll.Note = Me.AddNote
    Form_frmPrintedFormsAll.RecordNo = 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(strPrinter, 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
Microsoft Access

Avatar of undefined
Last Comment
Helen Feddema

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Helen Feddema

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
jodstrr2

ASKER
Hi Helen,
Can you give me a little bit more details base on my code above? I'm kind of confusse now.
jodstrr2

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
Helen Feddema

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.
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy