I have three forms in an Access 2003 database (developing in Access 2007) that sit in a parent -> child -> grandchild relationship. In the 'Form_Load' sub of the child form, I set some properties of the grandchild (form header, row source, and control logic). When I view the child form, everything works properly. When I view the parent form, I get the error:
Run-time error '2455': You entered an expression that has an invalid reference to the property Form/Report.
in reference to the line:
Me.GrandchildFormName.Form.Foo.Caption = "bar"
I can access any property of the grandchild form except the Form property without throwing any errors. Does anyone know what might be causing this? I made a test case in a new database and it worked fine, so I'm leaning towards there being something in the legacy code I inherited with the database (which, I've been told, goes back 18 years to a pre-Access database system) that is causing the problem, but I figured I'd check here to see if any of you might know a work-around.
If it's relevant, the actual structure of the forms is a bit more complicated, with the grandchild form appearing multiple times (under different control names) in the child form, like this:
|--------------|
| A |
| |----------||
| | B ||
| | |------|||
| | | C[1] |||
| | |------|||
| | ||
| | |------|||
| | | C[2] |||
| | |------|||
| |----------||
|--------------|
Eliminating all but one of the grandchild forms does not fix the problem.
I could probably write code to work around the problem if there was a way for the grandchild form to know which of the instances it is being loaded as, but as far as I am aware, that isn't possible.