首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局变量丢失

全局变量丢失
EN

Stack Overflow用户
提问于 2015-04-27 09:46:47
回答 4查看 876关注 0票数 1

我有一个全局变量,它只是一个字符串。当我通过AutoExec打开访问时,我会设置它。这个变量是基于bool是真还是假的,它也是一个全局变量。

设置全局变量是可以的。然而,我有一个错误,这意味着我需要停止我的代码,并再次启动它来修复它。这导致全局变量被设置为空。

这是正常行为吗?我只是注意到它在哪里丢失了。但是,这意味着如果出现任何错误,我需要停止我的代码来修复它。每次都会迷路的。需要再次关闭和打开它。

不管怎么说,在我关闭访问权限之前都要设置它吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-27 16:32:51

听起来TempVars有你想要的行为。

这些都是内置的访问2007及更高版本。

示例(在立即窗口中):

代码语言:javascript
复制
Application.TempVars("abc") = 123
? Application.TempVars("abc") 
 123 
? TempVars![abc]
 123

这些将持续到应用程序关闭,并将生存程序重置。

可以在SetTempVar宏中使用AutoExec操作来设置TempVar值。

票数 5
EN

Stack Overflow用户

发布于 2015-04-27 10:12:21

根据设计,如果程序出错,所有变量都会被重置。

您可以通过调用以下命令来强制这种情况:

代码语言:javascript
复制
End

若要避免这种情况,请在您知道或认为可能发生错误的地方应用错误处理。

此外,添加一个简单的函数,您可以调用它来初始化开发过程中的全局变量。

票数 1
EN

Stack Overflow用户

发布于 2015-04-27 10:45:14

扩大4d怪物的答案,

  • 创建一个名为tbl_global_variables.的本地表
  • 有你的设置和它的值在那里。
  • 在启动时截断/初始化此表
  • 然后编写函数从此表中检索值。
  • 在检索函数中,检查变量是否已初始化。

功能应该是这样的:

代码语言:javascript
复制
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

每次你想检查这个值的时候,只要问一下系统

代码语言:javascript
复制
if fn_get_gValue then
    ... do something
end if

这样,您就不会失去全局值。当然,正如其他人所说,错误捕获在VBA中是一个很好的实践。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29892294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档