我有一个全局变量,它只是一个字符串。当我通过AutoExec打开访问时,我会设置它。这个变量是基于bool是真还是假的,它也是一个全局变量。
设置全局变量是可以的。然而,我有一个错误,这意味着我需要停止我的代码,并再次启动它来修复它。这导致全局变量被设置为空。
这是正常行为吗?我只是注意到它在哪里丢失了。但是,这意味着如果出现任何错误,我需要停止我的代码来修复它。每次都会迷路的。需要再次关闭和打开它。
不管怎么说,在我关闭访问权限之前都要设置它吗?
发布于 2015-04-27 16:32:51
听起来TempVars有你想要的行为。
这些都是内置的访问2007及更高版本。
示例(在立即窗口中):
Application.TempVars("abc") = 123
? Application.TempVars("abc")
123
? TempVars![abc]
123这些将持续到应用程序关闭,并将生存程序重置。
可以在SetTempVar宏中使用AutoExec操作来设置TempVar值。
发布于 2015-04-27 10:12:21
根据设计,如果程序出错,所有变量都会被重置。
您可以通过调用以下命令来强制这种情况:
End若要避免这种情况,请在您知道或认为可能发生错误的地方应用错误处理。
此外,添加一个简单的函数,您可以调用它来初始化开发过程中的全局变量。
发布于 2015-04-27 10:45:14
扩大4d怪物的答案,
功能应该是这样的:
Public function FN_GET_GVALUE() as Boolean
On error goto vError:
FN_GET_GVALUE = nz(Dlookup("SettingField", "tbl_global_variables"),false)
Exit function
vError:
FN_GET_GVALUE = false
End Function每次你想检查这个值的时候,只要问一下系统
if fn_get_gValue then
... do something
end if这样,您就不会失去全局值。当然,正如其他人所说,错误捕获在VBA中是一个很好的实践。
https://stackoverflow.com/questions/29892294
复制相似问题