我在 Access 2003 数据库(在 Access 2007 中开发)中有三个表单,它们位于父 -> 子 -> 孙关系中。在子表单的“Form_Load”子中,我设置了孙子表单的一些属性(表单标题、行源和控制逻辑)。当我查看子表单时,一切正常。当我查看父表单时,我收到错误:
运行时错误“2455”:您输入的表达式对表单/报表属性的引用无效。
参考该行:
Me.GrandchildFormName.Form.Foo.Caption = "bar"
我可以访问除Form 属性之外的孙窗体的任何属性,而不会引发任何错误。有谁知道这可能是什么原因造成的?我在一个新数据库中做了一个测试用例,它工作得很好,所以我倾向于在我继承的数据库中存在一些东西(我被告知,它可以追溯到 18 年前的访问前数据库系统),这是导致问题的原因,但我想我会在这里检查一下,看看你们中是否有人知道解决方法。
如果相关,表单的实际结构会更复杂一些,孙表单在子表单中多次出现(在不同的控件名称下),如下所示:
|--------------|
| A |
| |----------||
| | B ||
| | |------|||
| | | C[1] |||
| | |------|||
| | ||
| | |------|||
| | | C[2] |||
| | |------|||
| |----------||
|--------------|
消除除一种外孙形式之外的所有形式并不能解决问题。
如果有办法让孙子表单知道它被加载为哪个实例,我可能会编写代码来解决这个问题,但据我所知,这是不可能的。