Ms access Application.Eval()不使用表达式
这行代码不会计算:Ms access Application.Eval()不使用表达式,ms-access,vba,Ms Access,Vba,这行代码不会计算: If(StrComp(Left("Campaign", 5), "IMS :") = 0 If(StrComp(左)(“活动”,5),“IMS:”)=0 我是这样使用它的: strHolder=“如果(StrComp(左)(“活动”,5),“IMS:”)=0” myVar=Application.Eval(strHolder) 这是我收到的错误: 运行时错误“2425”: 您输入的表达式具有Microsoft Access找不到的函数名。 我猜Application.
If(StrComp(Left("Campaign", 5), "IMS :") = 0
If(StrComp(左)(“活动”,5),“IMS:”)=0
我是这样使用它的:
strHolder=“如果(StrComp(左)(“活动”,5),“IMS:”)=0”
myVar=Application.Eval(strHolder)
这是我收到的错误:
运行时错误“2425”:
您输入的表达式具有Microsoft Access找不到的函数名。
我猜Application.Eval
既不能读取If
,StrComp
,也不能读取Left
我不知道在这里该做什么,也找不到关于Eval
方法的深入信息
这行代码不会计算:
If(StrComp(Left("Campaign", 5), "IMS :") = 0
由于括号不平衡和如果没有那么它也不会编译
这一行也应该有编译错误
strHolder=“如果(StrComp(左)(“活动”,5),“IMS:”)=0”
如果您需要类似于此即时窗口示例的内容
StrComp(左(“活动”,5),“IMS:”)=0
假的
…然后将提交给Eval()
的字符串中的“
字符加倍
strHolder=“StrComp(左)(“活动”,5),“IMS:”)=0
?斯特霍尔德
StrComp(左(“活动”,5),“IMS:”)=0
myVar=Application.Eval(strHolder)
?myVar
0
?CBool(myVar)
假的
感谢您的回复。因此..我已经玩了一段时间了。您对一些语法错误的看法是正确的,但不是全部。1.双引号不起作用-不确定原因,但最终我需要单引号。2.剥离if语句并计算为bool变量是成功的关键(与您在这里所做的差不多)。是否有语法可以从字符串正确计算整个IF语句?不确定。是否有一个完整的IF
语句的示例,您希望Eval()
对其进行计算?IF(StrComp(左(“活动”),5,“IMS:)然后返回someValue
不确定如何对其进行语法分析。我不相信这样做是可能的。Eval()
无法处理您想要输入的表达式类型——就像一个代码块作为一行一样——Access抱怨说,我尝试过类似的尝试,但它找不到“If”的名称。也许您可以使用IIf()
获得您想要的:IIf(Eval(“表达式”),“case when True”,“when when when False”)
…但是有一个Eval()可以处理的“表达式”。