昨天,一个对我来说很好用的表单/子表单突然开始抛出 Error 2455: You entered an expression that has an invalid reference to the property Form/Report.
以下是我对问题的诊断。感觉是个bug。
我的问题是:你们有没有人见过这个?如果你有兴趣,你能不能尝试复制这个问题,让我知道你发现了什么?
问题:
- 我有一个完全独立的表单,为它的每个子表单设置记录源
- 但是当表单被放入子表单控件时失败,当尝试设置 SubForm.Form.RecordSource 属性时,每个子表单都会抛出错误 2455 (但同样,仅当表单本身是子表单时)
经过大量的实验,我把范围缩小到这个:
- SubForm 控件太短,无法显示表单的详细信息部分。只有标题可见。
- 由于表单的详细信息不可见,Access 默默地禁用了表单下的所有子表单!!!
我的解决方法:始终确保表单的 Detail 部分的至少一部分在 SubForm 控件中可见。任何一个:
- 增加子窗体控件的高度
- 将控件从表单标题移动到详细信息,并使标题更短或不可见,以便仅显示详细信息。
你能复制这个吗?这很奇怪,所以我想对这个问题进行一些独立的确认。所以,如果你有一点时间,请尝试以下步骤:
- 制作一个表格:
- 包含孙窗体的子窗体控件
- 一个表头部分,高 0.5 英寸
- 在父子窗体控件中将此窗体添加为子窗体
- 工作案例:
- 将父级的子窗体高度设置为 0.6 英寸,以便子级的详细信息部分可见
- 在代码中,引用子窗体的 subform.Form.RecordSource 属性(孙子窗体)。
- 期望:没有错误
- 失败案例:
- 现在,将父子窗体高度设置为 0.4 英寸,因此细节不可见
- 重新运行涉及子窗体 subform.Form.RecordSource 属性的代码。
- 预期:运行时错误 …