Microsoft KB Archive/129465

= ACC: How to Set Subreport's RecordSource Property at Run Time =

Article ID: 129465

Article Last Modified on 1/19/2007

-

APPLIES TO


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

-



This article was previously published under Q129465



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



SUMMARY
This article shows you how to use Visual Basic for Applications code to ensure that the RecordSource property of a linked subreport is set only the first time that the Open event of the subreport is triggered, and not when it is triggered thereafter.

You can set the RecordSource property of a subreport at run time only from the OnOpen property of the subreport. At all other times, this property cannot be modified (the property is read-only). But because a linked subreport triggers the Open event multiple times, you must ensure that the RecordSource property is set only once -- the first time that the Open event is triggered.

This article assumes that you are familiar with Visual Basic for Applications and with creating Microsoft Access applications using the programming tools provided with Microsoft Access. For more information about Visual Basic for Applications, please refer to your version of the "Building Applications with Microsoft Access" manual.

NOTE: Visual Basic for Applications is called Access Basic in Microsoft Access version 2.0. For more information about Access Basic, please refer to the "Building Applications" manual.



MORE INFORMATION
Use the following sample Visual Basic code in the OnOpen event procedure of a subreport to set the RecordSource property the first time that the Open event is triggered and not thereafter: Static CallCount As Long If CallCount = 0 Then Me.RecordSource = "MyCustomRecordSource" CallCount=CallCount+1 The Visual Basic code checks the value of the static variable CallCount. If CallCount is zero, then this is the first time the Open event is triggered, so the code sets the RecordSource property. Subsequent calls to the Open event will have a value of CallCount greater than zero.

