从VBA

时间:2015-05-04 13:46:23

标签: vba access-vba

我试图从第一种形式调用第二种形式的子表单,但我不确定这是否可行?我的代码如下:

            '2 get the corresponding section
        sectionInfo = GetSectionInfo(optPermit, arr)
            source = sectionInfo(0)
            heightNum = sectionInfo(1)
            topNum = sectionInfo(2)

            rootControl = "subfrmSection" + arr
            With Forms!frmSecondForm!rootControl.Form
                .SourceObject = "subfrmSection" + sectionInfo(0)
                .Top = currentLocation + sectionInfo(1) 'currentLocation + height of object
                .Left = leftNum
                .Height = cmdInfo(2)
                .Width = widthNum
            End With

我试图在按钮点击时编辑第二个表单的子表单,但我不断收到错误2450,说明它无法找到这个特定的子表单。在这种情况下调用子表单有不同的语法吗?

非常感谢任何帮助。谢谢!

编辑: 感谢 pteranodon 的帮助,最终的代码现在看起来像这样(对于很多需要它的人):

'2 get the corresponding section
        sectionInfo = GetSectionInfo(optPermit, arr)
        rootControl = "subfrmSection" + arr
        Form_frmSecondForm.Controls(rootControl).SourceObject = "subfrmSection" + sectionInfo(0)
        Form_frmSecondForm.Controls(rootControl).Top = currentLocation + sectionInfo(1) 'currentLocation + height of object
        Form_frmSecondForm.Controls(rootControl).Left = leftNum
        Form_frmSecondForm.Controls(rootControl).Height = sectionInfo(1)
        Form_frmSecondForm.Controls(rootControl).Width = widthNum

1 个答案:

答案 0 :(得分:2)

!符号正在寻找名为rootControl的控件,而不是名称保存在变量rootControl中的控件。

尝试:With Forms!frmSecondForm.Controls(rootControl).Form

我不知道你是否对frmSecondForm有同样的问题。如果这是一个变量而不是文字名称,请尝试: With Forms(frmSecondForm).Controls(rootControl).Form