У меня есть несколько программ Access, они довольно сложные, в них много VBA и десятки отчетов, связанных таблиц и т.д. Когда я печатаю эти отчеты, они не соответствуют моим настройкам принтера по умолчанию (а именно, параметр дуплекс). Как я могу это исправить?
2 ответа
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
0
У меня недавно была именно эта проблема, и я исправил ее, установив отчет .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