ACC2000: SetValue Action Does Not Set the Value for Page One of a Report (207864)



The information in this article applies to:

  • Microsoft Access 2000

This article was previously published under Q207864
Moderate: Requires basic macro, coding, and interoperability skills.

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

SYMPTOMS

When you run a macro that carries out an OpenReport action, and then carries out a SetValue action that sets the value for controls on the report being opened, the controls on the first page of the report are not updated by the SetValue action.

CAUSE

The SetValue action is carried out after the report is opened. After the report is opened, it is too late to change the values for controls that appear on the first page. The SetValue action should be placed in a macro that is triggered from the Format event of the control's report section or the Activate event of the report.

RESOLUTION

Create a macro that contains the SetValue action, and attach that macro to the Activate event of the report or the Format event of the control's report section. Then, the controls on the first page of the report display the correct values.

MORE INFORMATION

The Activate event of the report occurs before the report's Format event. The Format event occurs when Microsoft Access determines which data belongs in a report section but before the section is formatted for previewing or printing. Changes that affect the data that is displayed in a report section should be placed in the Format event of that section or the Activate event of the report.

Steps to Reproduce Behavior

CAUTION: If you follow the steps in this example, you modify the sample database Northwind.mdb. You may want to back up the Northwind.mdb file and follow these steps on a copy of the database.

  1. Start Microsoft Access, and then open the sample database Northwind.mdb or the sample project NorthwindCS.adp.
  2. Create a report using the AutoReport: Columnar Wizard based on the Categories table.
  3. Open the report in Design view and add an unbound textbox to the Detail section. Change the Name property of this control to txtDate.
  4. In the Detail section of the report, set the ForceNewPage property to After Section.
  5. Close the report and save it as rptSetValue.
  6. Create the following macro:
       Actions      Action Arguments  
       ---------------------------------------------------
       OpenReport   Report Name: rptSetValue
                    View: Print Preview
       SetValue     Item: Reports!rptSetValue!txtDate
                    Expression:  Date()
    					
  7. Save the macro as Test1, and then run it. Note that the report opens but the date does not appear in the unbound textbox (txtDate) on the first page. On subsequent pages, the date is displayed in the text box as expected.

REFERENCES

For more information about the order of events in reports, click Microsoft Access Help on the Help menu, type find out when events occur in the Office Assistant or the Answer Wizard, and then click Search to view the topic.

Modification Type:MajorLast Reviewed:6/24/2004
Keywords:kbprb KB207864