When you print a report manually, you have the opportunity to specify the number of copies in the Print dialog box. Automating the process is simple too — just execute the PrintOut method as follows:
DoCmd.PrintOut printrange, pagefrom, pageto, printquality, copies, collatecopies
As you can see, the fifth argument is copies; specify the number of copies using this argument. For instance, the following statement opens and prints four copies of a report named Invoices:
DoCmd.OpenReport "Invoices", acViewPreview
DoCmd.PrintOut , , , , 4
If the report is already open, make sure it’s current before printing, as follows:
DoCmd.SelectObject acReport, "Invoices", True
DoCmd.PrintOut , , , , 4
If you want to print only one copy, you can do so immediately from the OpenReport method by changing acViewPreview to acViewNormal, as follows:
DoCmd.OpenReport "Invoices", acViewNormal
This statement will send the Invoices report directly to the printer.
If users need more flexibility, create a print form that captures page numbers and copy count and pass those values to the report via the OpenReport method.
Print multiple copies of an Access report
Printing multiple copies of an Access report is a simple task and easy to automate using the PrintOut method.