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 文件