请帮忙。
=不起作用:
Function f()
f = 1
End Function
Private Sub Button1_Click()
k = Eval("f()")
End Sub
=不起作用:
Private Sub Button1_Click()
с=1
k = Eval("с")
End Sub
=做好工作:
Function f()
f = 1
End Function
Private Sub Button1_Click()
k = f()
End Sub
=在帮助中: 以下示例假定您有一系列50个函数,定义为A1,A2等。此示例使用Eval函数调用系列中的每个函数。
Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub
如何使变体1工作?
提前致谢。
++++++++++++++++++++++++++++
= UPDATE: 我通过“不工作”部分得到的错误数是2425.“找不到该函数的名称。” (或“在第二种情况下找不到表达式的名称。”)。抱歉我的英文。
= UPDATE: 当我尝试在Eval中明确命名函数时:
k = Eval("[Forms]![Form1].f()")
我收到错误31005 - “Access无法计算表达式,因为存在对”f“的引用。我开始怀疑Access禁止在Eval中使用用户定义的函数和变量。虽然帮助表明相反。
= UPDATE: 做的工作:
Function f()
f = 1
End Function
Private Sub Button1_Click()
k = Eval("val(""551" & "9" & "6"")")
End Sub
对于我来说,非常奇怪的双引号规则。但这并不能解决我的问题。
答案 0 :(得分:5)
Eval
函数无法访问Form
模块中的函数。将函数放在普通的Module
。
答案 1 :(得分:1)
有一个有趣的事实。 Eval()不接受用户变量作为参数,但接受表单控件数据。