设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1834|回复: 6
打印 上一主题 下一主题

[Access本身] [请教] 关于VB全局变量的一个低级问题!

[复制链接]
跳转到指定楼层
1#
发表于 2006-5-20 19:57:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果在模块中定义了一个全局变量,要在多个窗体中调用,而且在窗体中操作时会改变变量的值,
窗体关闭时释放变量,不让它影响到其它窗体(或者说让变量回到默认状态)
比如:
Public IsDirty As Boolean
Public strAction As String

那么在要窗体关闭事件中应该怎么写呢?

set IsDirty = False
set strAction = ""
还是
set IsDirty = Nothing
set strAction = Nothing

见笑了!谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-5-20 21:58:00 | 只看该作者
    IsDirty = False
    strAction = ""
3#
发表于 2006-5-20 23:09:00 | 只看该作者
以下是引用xinle在2006-5-20 11:57:00的发言:


如果在模块中定义了一个全局变量,要在多个窗体中调用,而且在窗体中操作时会改变变量的值,
窗体关闭时释放变量,不让它影响到其它窗体(或者说让变量回到默认状态)
比如:
Public IsDirty As Boolean
Public strAction As String

那么在要窗体关闭事件中应该怎么写呢?

set IsDirty = False
set strAction = ""
还是
set IsDirty = Nothing
set strAction = Nothing

见笑了!谢谢!





1、既然在窗体关闭后就不需要保留这个变量值,那又何必用全局变量。

2、VBA模块中的全局变量是很不稳定的,强烈不推荐使用。(原因在此不赘述了)

4#
 楼主| 发表于 2006-5-21 02:27:00 | 只看该作者
因为某些窗体不需要才在关闭时不保留的,
但有些窗体又需要传递变量,所以才用全局变量

LucasLynn,能推荐一种更好的方法吗?谢谢!!
5#
发表于 2006-5-21 05:19:00 | 只看该作者
以下是引用xinle在2006-5-20 18:27:00的发言:


因为某些窗体不需要才在关闭时不保留的,
但有些窗体又需要传递变量,所以才用全局变量

LucasLynn,能推荐一种更好的方法吗?谢谢!!

在某个窗体声明部分定义一个 窗体模块级变量a ,不需要看到这个窗体的时候,visible=false.需要看到的时候,visible=true.这样的话,无论该窗体是否可见,变量都可以传递==>>forms("窗体名称").a
6#
发表于 2006-5-21 06:48:00 | 只看该作者
以下是引用xinle在2006-5-20 18:27:00的发言:


因为某些窗体不需要才在关闭时不保留的,
但有些窗体又需要传递变量,所以才用全局变量

LucasLynn,能推荐一种更好的方法吗?谢谢!!



一种方法是模仿多用户登录的用户信息保存方法,即保存在一个打开但是隐藏的窗体中。

还有一种方法是窗体间直接相互调用,或者使用OpenArgs,相关帖子可参考:

http://www.office-cn.net/forum.php?mod=viewthread&tid=39927

虽然实现起来稍微麻烦了点,但是从软件工程的角度而言,这是更可靠的方法。











[此贴子已经被作者于2006-5-20 22:48:48编辑过]

7#
 楼主| 发表于 2006-5-21 17:47:00 | 只看该作者
谢谢,我试试先!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-27 12:26 , Processed in 0.089810 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表