访问 TempVars 不要编译
Access TempVars Don't Compile
我已经使用 TempVars
一段时间了,但我在 Access 2010 数据库中遇到了一些问题。
每当我尝试编译时,都会出现一个说明 "Method or data member not found" 的错误对话框,并且会突出显示术语 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)
- 所需变量已通过
TempVars.Add "xx", "yy"
定义(它是)
万一这是腐败的事情,还完成了以下任务:
- 数据库压缩和修复
- 数据库反编译
我正在努力解决这个问题,以便我可以编译并继续前进。代码对用户来说运行良好,但仍然需要编译。
关于如何解决这个问题有什么想法吗?
添加到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
非常有趣的行为。
这为我编译:
If TempVars("Connected") And TempVars("HasAccessBE") Then Debug.Print "Yay!"
如果 TempVars 不存在,我将得到一个运行时错误,而不是编译错误。
其实连这个都没有,他们只是 return Null
.
这不编译:
If TempVars("Connected") And TempVars("HasAccessBE") Then WrongFunction
但是: 编译器选择第一个 TempVars
并说 "Sub or Function not defined"。而不是选择问题所在的WrongFunction
=> 错误不在 TempVars 中,而是在语句的其余部分。
从错误信息来看,我认为 Me.chkBackupOnExit
不存在/拼写错误。
编辑: 要查看发生了什么,请将您的代码行更改为
If Me.chkBackupOnExit Then MakeBackup
并尝试编译它。
我已经使用 TempVars
一段时间了,但我在 Access 2010 数据库中遇到了一些问题。
每当我尝试编译时,都会出现一个说明 "Method or data member not found" 的错误对话框,并且会突出显示术语 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) - 所需变量已通过
TempVars.Add "xx", "yy"
定义(它是)
万一这是腐败的事情,还完成了以下任务:
- 数据库压缩和修复
- 数据库反编译
我正在努力解决这个问题,以便我可以编译并继续前进。代码对用户来说运行良好,但仍然需要编译。
关于如何解决这个问题有什么想法吗?
添加到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
非常有趣的行为。
这为我编译:
If TempVars("Connected") And TempVars("HasAccessBE") Then Debug.Print "Yay!"
如果 TempVars 不存在,我将得到一个运行时错误,而不是编译错误。
其实连这个都没有,他们只是 return Null
.
这不编译:
If TempVars("Connected") And TempVars("HasAccessBE") Then WrongFunction
但是: 编译器选择第一个 TempVars
并说 "Sub or Function not defined"。而不是选择问题所在的WrongFunction
=> 错误不在 TempVars 中,而是在语句的其余部分。
从错误信息来看,我认为 Me.chkBackupOnExit
不存在/拼写错误。
编辑: 要查看发生了什么,请将您的代码行更改为
If Me.chkBackupOnExit Then MakeBackup
并尝试编译它。