Solved

Automatically Print report to specific printer but did not set it back to the default print

Posted on 2012-03-12
4
406 Views
Last Modified: 2012-03-12
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
0
Comment
Question by:jodstrr2
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 31

Accepted Solution

by:
Helen_Feddema earned 500 total points
ID: 37709972
Are you printing the other reports in the interface or in code?  Try putting a Debug.Print statement in the code after the printer is reset to the default, and see what you get.

Also, you could specifically set the default printer to the correct printer name in your Click event code, after printing to the specific printer.
0
 

Author Comment

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

Author Comment

by:jodstrr2
ID: 37710803
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
0
 
LVL 31

Expert Comment

by:Helen_Feddema
ID: 37710838
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.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question