Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【Access教程】 VBA变量声明中Static关键字妙用

时 间:2012-12-06 08:41:42
作 者:转载   ID:6392  城市:昆山
摘 要:VBA变量声明中Static关键字妙用
正 文:

我们在写VBA程序的时候都需对变量进行声明,这是因为ACCESS的默认模式是“显式声明”,也就是在新增的模块最前面加上“Option Explicit”,这一行,也就是要求在使用变量前一定要先声明,如果你不进行事先声明,则执行时会出现编译错误。 
     当然我们也可以删除“Option Explicit”,也就是允许变量不必经过声明就可以直接在程序使用。我们把这叫“隐式声明”,这种方式使用时非常方便,但是因为不知何处会突然冒出新的变量,对日后的程序查错及维护会产生不少困扰.因此我们还是养成"声明变量"的好习惯。 
     我们在声明变量的时候必须用到关键字,如“Dim”、“Private”、“Public”,使用“Dim”关键字就是“Private”,两 个关键字声明的变量,称之为局部变量,表示变量只能在同一模块内使用或是声明的模块内使用,“Public”的关键字声明的 变量,称之为全局变量,则表示变量在整个VBA工程(或是数据库)中都可以使用。 

     以上所说的这些变量声明是我们常用的,下面我所要说的是声明变量“Static”关键字。我们把用“Static”关键字声明的变量称之为静态变量,之所以称为静态变量,是因为其值不会因为程序的结束而消失,即会一直保留其变量,直到程序完全结束后才会消失。

例程试验一:如果用“Dim”声明变量,无论此过程执行多少次,你会发现“mCounter”变量值不会发生变化。

Sub Counter() 
    Dim mCounter as integer 
    mCounter= mCounter+1 
    Msgbox  mCounter 
End sub 
例程试验二:当我们用“Static”关键字时,“mCounter”变量值会随着程序执行次数进行累加。

Sub Counter() 
    Static mCounter as integer 
    mCounter= mCounter+1 
    Msgbox  mCounter 
End sub 
利用“Static”关键字声明变量的这一特性,我们可以用来实现对数据库系统登陆次数限制,如三次登陆错误则退出系统。 

例程如下:

Static intCounter as integer 
If  txtPass <> “密码” then 
    intCounter =intCounter+1 
Else 
    DoCmd.OpenForm “主窗体” 
End if 

If  intCounter > 3  then 
    Msgbox "你已三次输错密码,系统将退出!" 
    DoCmd.Quit 
End if  
转自:http://accesshome.5d6d.net/thread-3186-1-1.html



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助