Office中国论坛/Access中国论坛

标题: 请问有没有这样的变量? [打印本页]

作者: Stinger    时间: 2002-7-12 21:46
标题: 请问有没有这样的变量?
常规变量: 用DIM 或 PUBLIC 定义的变量 会被 END 语句重置.
能不能定义一种变量在执行 END 时不会被删除?

作者: zhuyiwen    时间: 2002-7-12 21:53
请查VBA帮助,变量的使用范围。[em26]
作者: Stinger    时间: 2002-7-12 22:00
我正在查.

其实问题是亮样的:
我设定了几个全局变量.
在程序运行过程中需要用到其值,但我在代码中用了一些 END 语句(用作错误处理).但发现在执行 END 后所有全局变量值丢失.
请问用什么办法可以让流程立即跳出但不删除全局变量?

作者: zhuyiwen    时间: 2002-7-12 22:04
请在模块中定义全局变量。[em26]

不要放在过程中,放在最前面。
作者: Stinger    时间: 2002-7-12 22:05
我正是这样做的,但 END 会将其删除.
作者: zhuyiwen    时间: 2002-7-12 22:30
你为什么要执行 End 语句?

在VBA中:

End Sub 结束过程
End Function 结束函数

而 End 是结束程序。[em26] 当然所有的变量都全释放。
作者: Stinger    时间: 2002-7-12 22:43
假设如下:
    If IsNull(Text_Received) Then
        MsgBox "lease input received quantity", vbOKOnly, "No input"
'        End
    我想让程序从这里跳出
    Else
        ....
作者: Stinger    时间: 2002-7-13 00:00
找到方法了!

本来可用 STOP, 但必须编译成 MDE 才能隐藏代码.

后来用 GOTO Over 解决.

在每个用到了此语句的 SUB 中加一句,放在 END SUB 的上面

Over:
'      Do nothing

作者: freemanager    时间: 2002-7-13 00:33
亏你想得出来。
跳出过程请用:Exit sub
跳出函数请用:Exit Function
作者: zhuyiwen    时间: 2002-7-13 04:50
呵呵......[em26]
作者: HG    时间: 2002-7-15 19:23
天呀,比我的想法還有意思。在編程中GOTO語句,是一個低效的語句,容易出現大量的重復無序的代碼,有人把它比作面條,面修是什麼樣的,可想而知。而用EXIT,或BREAK語句就高效的多了,且代碼易讀和修正。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3