如何在子表单中为子表单设置新表单? [accdb]

时间:2019-02-01 10:13:14

标签: vba forms access-vba subform

因此,我已将我们的应用程序从“ mbd”更改为“ accdb”,并且某些声明无法按应有的方式工作。

这行代码适用于'mbd'文件,但不适用于'accdb'

Dim subformachart As Form
Set subformachart = Form![subChart].Form!subChartSpace.Form

其中:

  • form->是主要表单
  • subChart->是第一个子表单
  • subChartSpace->是第二个子表单

这是我在研究了一些文档之后尝试过的方法,但是它没有用(文档总是在谈论控件和其他专有属性,但从未涉及.Form专有属性

Dim subformachart As Form
Set subformachart = Me!subChart.Form!subChartSpace.Form

This doesn't work.

此外,如果我只想访问

中的第一个子表单,
Set subformachart = Me!subChart.Form

它工作得很好,但是我找不到像mbd示例中那样访问第二个子窗体的方法。

1 个答案:

答案 0 :(得分:0)

也许您将subform control nameform name混合使用,或者代码范围有问题吗?

我测试了以下星座:

  • 主表单frmMain包含一个名为subChart的子表单控件,该子控件包含一个名为frmSub的表单。
  • 子表单frmSub包含一个名为subChartSpace的子表单控件,该子控件包含一个名为frmSubSub的表单。
  • 名为frmSubSub的子子表单。

放置在onclick上按钮的frmMain过程中的以下代码执行良好:

'Using Me:
MsgBox Me.subChart.Form.subChartSpace.Form.Name

'Using Form:
MsgBox Form.subChart.Form.subChartSpace.Form.Name

'Set the form in a local variable, using your syntax example:
Dim subformachart As Form
Set subformachart = Form![subChart].Form!subChartSpace.Form
MsgBox subformachart.Name

如果您是从主表单之外调用代码,可以说是从标准模块中说出来,那么您必须先使用forms集合来引用主表单:

MsgBox Forms("frmMain").subChart.Form.subChartSpace.Form.Name

我看不到任何其他原因导致您的问题。