首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS-Access跨表单支持

MS-Access跨表单支持
EN

Stack Overflow用户
提问于 2010-08-11 02:04:54
回答 3查看 325关注 0票数 1

我是一名.NET / C#软件工程师,被录用到一个我不喜欢的临时工作岗位上。

我的公司使用MS-Access应用程序来实现其当前的许多功能。为此使用的Visual Basic版本是(v6.5)。组装它的开发人员(目前正在海外度假)有一个“登录”表单,该表单在进入“总机”页面之前弹出。为了保持对登录的“全局感知”,他让表单保持填写并打开状态--对用户隐藏表单,然后当他进入其他表单时,他会回到隐藏的登录表单中,以确定登录详细信息。

虽然这是功能性的,但它让我的面向对象的大脑有点痛苦。这是在这个版本的MS-Access + VB中模拟全局变量缓存的正确方法,还是仅仅是我们的MS-Access开发人员满足的一种方法。我找到了一些关于使用global关键字实现全局变量的VBA源代码的在线参考,但v6.5似乎不支持这一点(至少不是以这种方式)。

有没有人有任何关于这个或一些优秀的MS-Access资源的线索可以推荐给我,这样我就可以把这个令人头疼的事情抛在脑后了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-11 02:19:11

作为bugtussle has said,你可以在模块中使用“全局”变量。下面是操作步骤:

创建一个名为LoginCredentials的模块。在该模块中,您可以将变量声明为public,这实际上使它们成为全局变量。例如:

代码语言:javascript
复制
public LoggedInUserId As Integer
public IsUserLoggedIn As Boolean

您可以从其他表单设置和访问这些变量。我喜欢在VBA中始终使用模块名和变量名,这样我就知道全局变量是在哪里声明的,如下所示:

代码语言:javascript
复制
LoginCredentials.LoggedInUserId = 15

If LoginCredentials.IsUserLoggedIn Then
    'Do Something    '
End If

当然,全局变量只在应用程序的生命周期内持续存在,因此如果应用程序崩溃或用户存在于应用程序中,您将丢失这些数据。如果您需要登录凭据来“存活”更长时间,请考虑将数据存储在数据库表中。

顺便说一句,在使用VB6 /VBA时,您的面向OOP的大脑可能会受到一些影响,这并不少见。该语言无法完全实现OOP设计特性,但当您知道自己在做什么时,仍有可能编写更好的代码。

票数 0
EN

Stack Overflow用户

发布于 2010-08-11 05:13:33

这种方法非常有效,因为在给定代码中断等情况下,全局变量可以重置为null。特别是当你作为开发人员在代码中工作的时候。

另外,如果它现在工作了,为什么要改变它呢?

票数 2
EN

Stack Overflow用户

发布于 2010-08-11 02:10:49

他和解了。存储全局变量的正确方法是使用模块。

http://www.blueclaw-db.com/access_database_global_variable.htm

http://forums.whirlpool.net.au/forum-replies-archive.cfm/528616.html

http://www.google.com/search?q=global+variables+in+vba+access

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

https://stackoverflow.com/questions/3451989

复制
相关文章

相似问题

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