我有几个 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