Access窗体当前记录计数:调用公共函数遇Expected:=编译错误求助
解决VBA编译错误:Expected:=
这个错误其实是VBA函数调用的语法规则坑到你了,咱们一步步捋清楚:
问题根源
你直接用带括号的方式调用了函数,但没有把它的返回值赋值给任何变量/控件,也没加Call关键字——VBA会把这种写法当成语法错误,因为它默认带括号的函数调用是要获取返回值的,必须有接收的对象(比如变量、控件属性)。
三种可行的解决办法
办法一:去掉参数外的括号,直接调用
把Form_Current()里的代码改成:CurrRecs "RecordType", "frmCurrentForm", "tblGetCountFromHere"这种写法适用于你只需要执行函数里的逻辑,不需要用到它的返回值的情况。
办法二:用Call关键字,保留括号
如果习惯用括号包裹参数,可以加上Call明确告诉VBA你是在调用这个函数(当作过程执行):Call CurrRecs("RecordType", "frmCurrentForm", "tblGetCountFromHere")办法三:直接把返回值赋值给目标文本框(更贴合你的需求)
既然你的目的是在文本框里显示结果,那大概率你的CurrRecs函数是返回计算结果的——那直接把返回值赋值给文本框的Value属性就好:' 把txtTarget替换成你实际要显示结果的文本框名称 Me.txtTarget.Value = CurrRecs("RecordType", "frmCurrentForm", "tblGetCountFromHere")
额外提醒
如果你的CurrRecs函数没有返回值(比如其实应该写成Sub过程),那最好把它改成Public Sub,这样调用的时候逻辑会更清晰,也不容易踩语法坑。
内容的提问来源于stack exchange,提问作者missscripty
相关产品推荐
相关产品推荐

