访问忽略默认打印机设置

访问忽略默认打印机设置

我有几个 Access 程序,它们相当复杂,里面有很多 VBA 和几十份报告、链接表等。当我打印这些报告时,它们不遵循我的默认打印机设置(即双面打印选项)。我该如何纠正这个问题?

答案1

您需要将.UseDefaultPrinter报告的属性设置为True

这里,此代码将重置所有报告的打印机为默认值:

For Each obj In CurrentProject.AllReports
    DoCmd.OpenReport ReportName:=obj.Name, View:=acViewDesign
    If Not Reports(obj.Name).UseDefaultPrinter Then
        Reports(obj.Name).UseDefaultPrinter = True
        DoCmd.Save ObjectType:=acReport, ObjectName:=obj.Name
    End If
    DoCmd.Close
Next obj

答案2

我最近遇到了这个确切的问题,并通过在打印之前将报告的.Printer属性设置为默认打印机(或所需的打印机)来解决了这个问题,如下所示。

'need report open in order to set .Printer property
'  so open report in PREVIEW mode but HIDDEN
DoCmd.OpenReport "<ReportName>", acViewPreview, , , acHidden
'Assign report's .Printer property to default printer
Reports("<ReportName>").Printer = Application.Printers(Printer.DeviceName)
'Print report
DoCmd.OpenReport "<ReportName>", acViewNormal

相关内容