Microsoft KB Archive/162537

= ACC: SetValue Action Does Not Set Value for Page One of Report =

Article ID: 162537

Article Last Modified on 1/19/2007

-

APPLIES TO


 * Microsoft Access 95 Standard Edition
 * Microsoft Access 97 Standard Edition

-



This article was previously published under Q162537



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



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 was carried out after the report was 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 will 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 will be 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
 Open the sample database NorthWind.mdb. Create a report using the AutoReport: Columnar Wizard based on the Categories table. Open the report in Design view and add an unbound textbox to the detail section. Change the Name property of this control to txtDate . In the detail section of the report, set the ForceNewPage property to After Section. Close the report and save it as rptSetValue .</li>  Create the following macro:

<pre class="fixed_text">     Macro Name      Action --     Test1           OpenReport SetValue

Test1 Actions ---     OpenReport Report Name: rptSetValue View:       Preview

SetValue Item:       Reports!rptSetValue!txtDate Expression: Date </li> Save the macro as Test1 and 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.</li></ol>

<div class="references_section">