请提供帮助。
=不起作用:
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发挥作用?
提前谢谢。
++++++++++++++++++++++++++++
=更新:我在"不起作用"部分得到的错误数量是2425。"找不到函数的名称。"(或第二种情况下的"找不到此表达式的名称")。对不起我的英语。
=更新:当我尝试在Eval:中显式命名函数时
k = Eval("[Forms]![Form1].f()")
我得到错误31005-"Access无法计算表达式,因为存在对"f"的引用"。我开始怀疑Access禁止在Eval中使用用户定义的函数和变量。尽管帮助声明相反。
=更新:工作:
Function f()
f = 1
End Function
Private Sub Button1_Click()
k = Eval("val(""551" & "9" & "6"")")
End Sub
对我来说,重复引用的规则很奇怪。但这并不能解决我的问题。
Eval
函数无法访问Form
模块中的函数。将函数放置在普通的Module
中。
有一个有趣的事实。Eval()不接受用户变量作为参数,但接受表单控件数据。