ACC: How to Repeat Subreport Header at Top of PageID: Q120907
|
Moderate: Requires basic macro, coding, and interoperability skills.
This article describes how to repeat a subreport's header when the
subreport spans multiple pages.
NOTE: This method works best for one subreport. Attempting to repeat
the subreport header for multiple subreports requires a set of controls
in the page header and a flag for each subreport. Then the code must
check each flag and hide or show the appropriate sets of controls.
This code is not easy to maintain.
NOTE: This article explains a technique demonstrated in the sample
files, RptSampl.exe (for Microsoft Access for Windows 95 version 7.0)
and RptSmp97.exe (for Microsoft Access 97). For information about how
to obtain these sample files, please see the following articles in the
Microsoft Knowledge Base:
Q145777 ACC95: Microsoft Access Sample Reports Available on MSL
Q175072 ACC97: Microsoft Access 97 Sample Reports Available on MSL
The method demonstrated in the following example uses a flag in the page
header to indicate whether the subreport spans multiple pages. When the
subreport's report header is printed the flag is set to 1. When the
subreport's report footer is printed, the flag is set to 0. When the page
header is printed, if the flag is set to 1, then the subreport spans
multiple pages and the subreport's header should be repeated.
The following example demonstrates how to cause a subreport's header to be
repeated if the subreport spans multiple pages:
Macro Name Condition Action
------------------------------------
MainRH SetValue
MainPH [Flag]=0 CancelEvent
SubRH SetValue
SubRF SetValue
MainRH Actions
------------------------------------------------
SetValue
Item: Reports![Categories Main Report]![Flag]
Expression: 0
SubRH Actions
------------------------------------------------
SetValue
Item: Reports![Categories Main Report]![Flag]
Expression: 1
SubRF Actions
------------------------------------------------
SetValue
Item: Reports![Categories Main Report]![Flag]
Expression: 0
Text Box:
ControlName: ProductID
ControlSource: ProductID
Text Box:
ControlName: CategoryID
ControlSource: CategoryID
Text Box:
ControlName: ProductName
ControlSource: ProductName
Label:
ControlName: Text1
Caption: ProductID
Label:
ControlName: Text2
Caption: CategoryID
Label:
ControlName: Text3
Caption: ProductName
RepeatSubHeader.SubRH
RepeatSubHeader.SubRF
Text Box:
ControlName: Flag
Visible: No
Text Box:
ControlName: CategoryID
ControlSource: CategoryID
Text Box:
ControlName: CategoryName
ControlSource: CategoryName
Text Box:
ControlName: Description
ControlSource: Description
RepeatSubHeader.MainRH
RepeatSubHeader.MainPH
Macro Name Condition Action
-------------------------------------------------
MainPH [Flag]=0 SetValue
Item: [Text1].visible
Expression: False
... SetValue
Item: [Text2].visible
Expression: False
... SetValue
Item: [Text3].visible
Expression: False
[Flag]=1 SetValue
Item: [Text1].visible
Expression: True
... SetValue
Item: [Text2].visible
Expression: True
... SetValue
Item: [Text3].visible
Expression: True
For more information about events during printing, type "Print Events" in
the Office Assistant, click Search, and then click to view "Print Event."
For more information about report OnFormat and OnPrint properties, search
on "OnFormat," and "OnPrint," using the Microsoft Access 97 Help Index.
Keywords : kbusage RptSub
Version : 1.0 1.1 2.0 7.0 97
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: April 7, 1999