title: Microsoft Access runtime error 2455 when trying to access grandchildren forms from child form
body: <p>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:</p>
  
  <blockquote>
    <p>Run-time error '2455': You entered an expression that has an invalid reference to the property Form/Report.</p>
  </blockquote>
  
  <p>in reference to the line:</p>
  
  <pre><code>Me.GrandchildFormName.Form.Foo.Caption = "bar"
  </code></pre>
  
  <p>I can access any property of the grandchild form <i>except</i> 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.</p>
  
  <p>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:</p>
  
  <pre><code>|--------------|
  | A            |
  |  |----------||
  |  | B        ||
  |  |  |------|||
  |  |  | C[1] |||
  |  |  |------|||
  |  |          ||
  |  |  |------|||
  |  |  | C[2] |||
  |  |  |------|||
  |  |----------||
  |--------------|
  </code></pre>
  
  <p>Eliminating all but one of the grandchild forms does not fix the problem.</p>
  
  <p>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.</p>