Microsoft KB Archive/129465

From BetaArchive Wiki
Knowledge Base


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.

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


Keywords: kbhowto kbprogramming kbusage KB129465