看起来很简单,但我似乎无法找到正确的语法。我希望在Access 2013应用程序中为未打开的表单创建表单变量,这样我就可以将表单对象传递给一系列方法,而不是传递表单的单独属性。
这是我一直在尝试的内容,但我遇到了运行时错误' 2465' " Microsoft Access无法找到字段' frmSuppliers'在你的表达中引用。
Private Sub cmdSuppliers_Click()
Dim frm As Form
Set frm = Form("frmSuppliers")
Debug.Print frm.Name
答案 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