VBA - 为什么我得到编译错误预期函数或变量

时间:2015-05-12 16:58:00

标签: vba access-vba

我很想知道为什么下面会抛出并编译错误,说明它正在期待一个函数或变量

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)

我做任何有效的工作都没有问题,我只是想了解以前的陈述是怎么回事。

谢谢你, 佛瑞德

2 个答案:

答案 0 :(得分:2)

OpenForm方法(doc)没有返回任何内容,只是打开表单(不返回它)。

因此,您尝试将Nothing投射到定义为As Form的变量中。 相反,frm(具有Set frm =语句)期望"成为某种东西",它期待一个函数或变量 - 一个值,是全部清除)。

答案 1 :(得分:2)

DoCmd.OpenForm是一种不返回值的方法。在第二个代码段中,您正在访问包含该表单的Forms集合,该表单由DoCmd.OpenForm打开后。调用方法时,不得指定大括号。