在Access VBA中声明和设置表单变量

时间:2017-01-11 21:17:23

标签: vba ms-access access-vba

看起来很简单,但我似乎无法找到正确的语法。我希望在Access 2013应用程序中为未打开的表单创建表单变量,这样我就可以将表单对象传递给一系列方法,而不是传递表单的单独属性。

这是我一直在尝试的内容,但我遇到了运行时错误' 2465' " Microsoft Access无法找到字段' frmSuppliers'在你的表达中引用。

Private Sub cmdSuppliers_Click()
    Dim frm As Form
    Set frm = Form("frmSuppliers")

    Debug.Print frm.Name

2 个答案:

答案 0 :(得分:3)

Private Sub cmdSuppliers_Click()
    Dim frm As Form
    Set frm = Forms("frmSuppliers")

    Debug.Print frm.Name

您引用了Forms集合,但使其成为单数而非复数。

答案 1 :(得分:2)

谢谢Sorceri和Christopher。我似乎错过了对form集合的错误引用的汇编,并且在设置变量之前没有打开表单。这段代码似乎可以解决问题:

Private Sub cmdSuppliers_Click()
    Dim frm As Form

    DoCmd.OpenForm "frmSuppliers", acNormal, , , , acHidden
    Set frm = Forms("frmSuppliers")

    Debug.Print frm.Name

    DoCmd.Close acForm, frm.Name
    Set frm = Nothing

End Sub