ACC: How to Set Subreport's RecordSource Property at Run Time (129465)



The information in this article applies to:

  • Microsoft Access 2.0
  • Microsoft Access for Windows 95 7.0
  • Microsoft Access 97

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.

REFERENCES

For more information about setting report properties at run time, please see the following article in the Microsoft Knowledge Base:

114510 ACC: Limitations on Setting Report Properties at Run Time


Modification Type:MinorLast Reviewed:10/11/2006
Keywords:kbhowto kbProgramming kbusage KB129465