【问题标题】:MSAccess: Global vs Local Variable DeclarationMSAccess:全局变量与局部变量声明
【发布时间】:2014-02-11 17:42:23
【问题描述】:

我有一个包含几十个模块的 Access 应用程序。我一直在每个新模块中重新声明变量,减去需要全局范围的变量。我到处都使用 Option Explicit。

问题:将我的公共局部变量声明为全局变量是否是一种不好的做法,即使范围只是局部变量?只是为了方便,我想:

我在每个模块中声明的变量示例:

Dim strMsg as String
Dim strSQL as String
Dim N, N1, N2 as Integer
Dim db As Database

Set db = CurrentDb

有什么指导或建议吗?

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    我认为您仍然希望将这些变量保留在本地。如果你在Module1 并设置strMsg 然后你从Module1 调用Module2 中的函数并修改Module2 中的strMsg。返回Module1 后,您会期望Module1 中的状态没有改变,但现在您的strMsg 不同了。当然,这些基本上是静态类并且本身没有状态,但通常最好让所有内容尽可能接近调用代码。如果您没有真正令人信服的理由需要将这些变量设为全局变量,那么请将它们保留在本地。

    【讨论】:

    • +1 很好的推理,尤其是对于像N 这样的“临时”变量。调用其他例程的意外副作用可能会使调试变得非常更加困难。
    • 并记住每个全局变量都会消耗资源。
    猜你喜欢
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多