The best way to print separately odd and even pages of a report is to set up a form that prompts you for the pages to print (odd or even) and then calls a macro to print the report. The form in the following example has a text box control to hold the value "odd" or "even" and a command button to print the report.
NOTE: When you use the following steps to print even pages, all the odd pages generate blank pages (and vice versa). Whenever you implement this routine, your report generates blank pages between each printed page.
-
Create a new form called Print Odd Even Pages:
- Add an unbound text box to the form and set its Name property to PrintPages.
- Add a command button to the form and set its Caption property to Print Report. Set the OnClick property of the command button to the following OddEven.Print macro group.
- Create a new macro called OddEven.
NOTE: In the following example, an underscore (_) at the end of a line is used as a line-continuation character. Remove the underscore from the end of the line when re-creating this example.
Macro Name Condition Action
----------------------------------------------------------
Print OpenReport
TestOddEven Forms![Print Odd Even Pages] _
![PrintPages]="Even" And _
Page Mod 2=1 CancelEvent
Forms![Print Odd Even Pages] _
![PrintPages]="Odd" And _
Page Mod 2=0 CancelEvent
Print Actions
----------------------------------------------------------
OpenReport
ReportName: Customer Labels
View: Print Preview
- From each report section that is printing data, call the macro group OddEven.TestOddEven from the Print event procedure.
For example, in the Northwind.mdb sample database report, Customer Labels, the only section that is printing is the detail section. The page header and page footer in this report do not print any values. For the detail section, set the OnPrint property to the following event procedure: - With the form open, enter Odd or Even in the text box. When you click the Print Report command button, the Customer Labels report opens. Press OK for all countries. The report then runs its Print events, which call the macro group OddEven.TestOddEven to print only the odd or even pages.