在子窗体上调用控件

时间:2015-04-21 17:20:43

标签: forms access-vba ms-access-2010 controls subform

我正在寻找一种方法来访问子窗体上的控件,目前我尝试的所有内容都给我一个错误,#34;找不到"。

  

我的主要形式" frm_View"包含子表单" subform_View2"

     

subform_View2包含一个标签容器

     

标签容器包含另一个子表单" subform_View3"在...上   第一个标签

     

单独表格" frmAnswers"

我需要访问subform_View3上的控件才能插入从frmAnswers获取的信息。

我试过了:

me.subform_view3!frm_View!control1
me.subform_view3!subform_view2!subform_View3!control1

1 个答案:

答案 0 :(得分:1)

问题是您必须将制表符控件视为一种特殊的容器,每个页面的行为与另一个子窗体的行为类似。

我创建了一个例子,见下图。 enter image description here

主窗体包含一个TabControl(名为tabControl),第一个页面包含一个子窗体(称为SubForm),它包含一个文本框(txb)。

要获得文本框的值,您需要按照以下方式浏览选项卡控件:

Me.tabControl.Pages(0).Controls("SubForm")!txb.Value

Me.tabControl.Pages("Page1").Controls("SubForm")!txb.Value

Me.tabControl.Pages("Page1").Controls("SubForm").Controls("txb").Value

请注意,SubForm是页面“Controls”集合的一部分,因此您需要首先识别选项卡控件,然后识别页面(通过名称或从零开始的索引),然后将子表单本身识别为得到它的控制。

修改

如果您想从与表单无关的代码中调用它,可以像这样

定位表单
Forms!MainForm!tabControl.Pages("Page1").Controls("SubForm")!txb.Value