在 Access 2007(或 2010)中,我需要使用 VBA 从主窗体设置嵌入在第一个子窗体中的子窗体的属性。为了清楚我说的是哪个表单,我将这个表单称为“subSubform”,就像我在代码中所做的那样(嗯,subSubform 实际上是子子表单控件的名称)。
当表单加载时,我的第一个子表单上有一个子表单控件,它是空白的(不包含表单源对象)。如果需要,我会使用有效表单的名称以及 LinkMasterFields 和 LinkChildFields 属性填写此控件的 SourceObject 属性。这一切似乎都很好,因为我确实得到了一个可扩展的加号,否则就不会出现。
接下来,我尝试为 subSubform 设置 RecordSource,但出现错误:
2455 您输入的表达式对属性 Form/Report 的引用无效。
这是我正在使用的代码:
Me!subform1.Form!subSubform.Form.RecordSource = sSubformSQL
'and I've tried this with the same bad results
Me.subform1.Form.subSubform.Form.RecordSource = sSubformSQL
'and this too
Forms("frmQuery").subform1.Form.subSubform!Form.RecordSource = sSubformSQL
'And I've tried this. It fails too, on the last line with the same error:
Dim frm As Form
Set frm = Forms("frmQuery").subform1.Form
Dim frm2 As Form
Set frm2 = frm.subSubform.Form
我尝试设置一个计时器并等待一秒钟来运行上面的代码,以防表单加载需要一些时间。但这没有什么区别。
我尝试从第一个子窗体而不是主窗体运行代码,但这也无济于事。仍然失败并出现相同的错误。
FWIW,我的子表单和我的子子表单都是数据表视图。我认为这与我在这里尝试做的事情没有什么不同(尽管我很清楚所涉及的性能问题,所以不要对我尖叫)。
我承认这可能是一个非常奇怪的要求。但我正在创建一个需要这个的动态查询界面。
任何想法如何在 subSubform 上设置表单属性?