我已经使用TempVars
一段时间了,但是在Access 2010数据库中遇到了一些问题。
每当我尝试编译时,都会出现一个错误对话框,指出"方法或数据成员未找到"出现并突出显示TempVars一词。
以下是相关代码段:
If TempVars("Connected") And TempVars("HasAccessBE") And Me.chkBackupOnExit Then MakeBackup
虽然我之前成功使用了TempVars("xx")
" xx"是使用TempVars.Add "xx", "yy"
在这种情况下,编译器会以某种方式认为TempVars不是可行的代码。
这些也已经过检查:
Application.TempVars("xx")
TempVars.Item("xx")
TempVars
的用户定义变量( none found )TempVars.Add "xx", "yy"
定义了所需变量(它)如果这是腐败的事情,还完成了以下任务:
我试图解决这个问题,以便我可以编译并继续前进。代码对用户来说很好,但是仍然需要编译。
有关如何解决问题的任何想法?
答案 0 :(得分:1)
添加到TempVars集合时,需要定义名称和值。然后,您可以按名称检索值。
TempVars.Add(name As String, value)
工作示例:
Sub Test()
Dim b As Boolean
b = True
TempVars.Add "bool", b
Debug.Print TempVars("bool")
End Sub
'True
答案 1 :(得分:1)
非常有趣的行为。
这为我编译:
If TempVars("Connected") And TempVars("HasAccessBE") Then Debug.Print "Yay!"
如果TempVars不存在,我将收到运行时错误,而不是编译错误。
实际上甚至不是这样,他们只返回Null
。
这不编译:
If TempVars("Connected") And TempVars("HasAccessBE") Then WrongFunction
但是:编译器选择第一个TempVars
并说“Sub或Function not defined”。而不是选择问题所在的WrongFunction
。
=>该错误不在TempVars中,而是在语句的其余部分。
从错误消息判断,我会说Me.chkBackupOnExit
不存在/拼写错误。
修改:要查看正在进行的操作,请将代码行更改为
If Me.chkBackupOnExit Then MakeBackup
并尝试编译它。