我很想知道为什么下面会抛出并编译错误,说明它正在期待一个函数或变量
Dim frm as Form
set frm = DoCmd.OpenForm(FormName:=mstr_FORM_NAME, View:=acDesign, WindowMode:=acHidden)
但我可以这样做
DoCmd.OpenForm FormName:=mstr_FORM_NAME, View:=acDesign, WindowMode:=acHidden
set frm=Forms(mstr_FORM_NAME)
我做任何有效的工作都没有问题,我只是想了解以前的陈述是怎么回事。
谢谢你, 佛瑞德
答案 0 :(得分:2)
OpenForm
方法(doc)没有返回任何内容,只是打开表单(不返回它)。
因此,您尝试将Nothing
投射到定义为As Form
的变量中。
相反,frm
(具有Set frm =
语句)期望"成为某种东西",它期待一个函数或变量 - 一个值,是全部清除)。
答案 1 :(得分:2)
DoCmd.OpenForm
是一种不返回值的方法。在第二个代码段中,您正在访问包含该表单的Forms
集合,该表单由DoCmd.OpenForm打开后。调用方法时,不得指定大括号。