小编Con*_*Kon的帖子

Access VBA中的Eval范围

请帮忙.

=不起作用:

Function f()
    f = 1
End Function

Private Sub Button1_Click()
    k = Eval("f()")
End Sub
Run Code Online (Sandbox Code Playgroud)

=不起作用:

Private Sub Button1_Click()
    ?=1
    k = Eval("?")
End Sub
Run Code Online (Sandbox Code Playgroud)

=做的工作:

Function f()
    f = 1
End Function

Private Sub Button1_Click()
    k = f()
End Sub
Run Code Online (Sandbox Code Playgroud)

=在帮助中:以下示例假定您有一系列50个函数,定义为A1,A2等.此示例使用Eval函数调用系列中的每个函数.

Sub CallSeries()
    Dim intI As Integer
    For intI = 1 To 50
        Eval("A" & intI & "()")
    Next intI
End Sub 
Run Code Online (Sandbox Code Playgroud)

如何使变体1工作?

提前致谢.

++++++++++++++++++++++++++++

=更新:我在"不工作"部分得到的错误数是2425."找不到该函数的名称." (或"在第二种情况下找不到表达式的名称.").对不起我的英语不好.

= UPDATE:当我尝试在Eval中明确命名函数时:

 k = Eval("[Forms]![Form1].f()")
Run Code Online (Sandbox Code Playgroud)

我收到错误31005 - "访问无法计算表达式,因为存在对"f"的引用.我开始怀疑Access禁止在Eval中使用用户定义的函数和变量.虽然帮助表明相反.

=更新:工作:

    Function …
Run Code Online (Sandbox Code Playgroud)

ms-access vba eval

2
推荐指数
1
解决办法
3329
查看次数

标签 统计

eval ×1

ms-access ×1

vba ×1