MS ACCESS:通过 VBA 更改默认打印机

Posted

技术标签:

【中文标题】MS ACCESS:通过 VBA 更改默认打印机【英文标题】:MS ACCESS: Change default printer via VBA 【发布时间】:2015-05-27 14:18:56 【问题描述】:

我有一个小应用程序,可以将默认打印机更改为 Ithica 票据打印机,然后打印一些信息并重置为默认打印机。该程序将在三个不同的工作站使用,每个工作站都有自己的票据打印机。

以下是我当前的代码尝试,其中炸弹。怎么了?

"application.Printer = application.Printers(tempTicket)"

使用“设备和打印机”中的打印机名称

   Private Sub Printfoundcardbtn_Click()
   Dim stEnviron As String
   Dim tempTicket As String
   '----- get the Computer Name
       stEnviron = Environ$("COMPUTERNAME")
'-------------Set ticket printer associated with "COMPUTERNAME"
        Select Case [stEnviron]
    Case "MyComputer"
        tempTicket = "Ithaca USB Printer"
    Case "SSP-REG1"
        tempTicket = "Ithaca USB Printer"
    Case "SSPREGA2"
        tempTicket = "ITherm610"

 End Select


    '-----------------------------------------------------------------
    '-------Set to ticket printer then back to Default---------------------------
    '------------------------------------------------------------------

     Dim prt As Printer
     ' Get current default printer
     Set prt = Application.Printer
     ' Set default printer
     application.Printer = Application.Printers(tempTicket)
     ' Print something, e.g.
     DoCmd.OpenForm "couponPrintFForm"
     '
     DoCmd.PrintOut acPages = 1
          ' Restore original printer
     Set Application.Printer = prt
     DoCmd.Close acForm, "couponPrintFForm", acSave = yes


End Sub

【问题讨论】:

【参考方案1】:
Dim prn As Printer
Dim printerFound As Boolean: printerFound = False

For Each prn In Application.Printers
    If prn.DeviceName = tempTicket Then
        Application.Printer = prn
        printerFound = True
        Exit For
    End If
Next

If Not printerFound Then
    ' Handle Printer Not Found Error
End If

您没有正确分配 Application.Printer,如果您使用上述方法,它将查找 tempTicket 中命名的打印机,如果找到,则将 Access 设置为将其用作默认打印机。如果没有找到打印机,那么您可以根据需要处理错误。

【讨论】:

以上是关于MS ACCESS:通过 VBA 更改默认打印机的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 将 MS Access 报告打印到 .xps 文件

可以通过 VBA 更改 MS Access 子表单字段吗?

Ms Access 数据库可以在使用 vba 打开时创建自己的备份吗?

使用 VBA 的 MS Access 打印报告

MS Access:如何找到 VBA 函数的所有用法?

如何在ms-access vba中单击命令按钮单击以更改代码以更改控件属性