ACC2000: How to Print Odd or Even Pages of a Report

ID: Q209508


The information in this article applies to:

Moderate: Requires basic macro, coding, and interoperability skills.

This article applies to a Microsoft Access database (.mdb) and a Microsoft Access project (.adp).


SUMMARY

This article describes how to print separately the odd and even pages of a report for duplex printing or to print reports with different margins for binder storage.


MORE INFORMATION

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.

  1. Create a new form called Print Odd Even Pages:


    1. Add an unbound text box to the form and set its Name property to PrintPages.


    2. 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.


  2. 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.


  3. 
          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 
  4. 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:


  5. 
    OddEven.TestOddEven 
  6. 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.


Additional query words: every other page left right


Keywords          : kbusage kbdta RptLayou 
Version           : WINDOWS:2000
Platform          : WINDOWS 
Issue type        : kbhowto 

Last Reviewed: June 10, 1999