您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > VBA在Access中的应用
第八章VBA在Access中的应用本章要点:了解VBA的概念理解模块的定义理解事件及其编写过程8.1VBA概述在前面的章节里,几乎没有用到编写代码的地方,可见,Access几乎可以不用编写代码就可以完成对数据库进行管理的任务。但是,有一些复杂的操作,仅靠Access简单的操作就完成不了了。例如,单位的设备管理部门对已购入的设备登帐的时候,为了维护方便和减少人工输入,当输入“笔记本电脑单价”和“数量”两项数值时,如图8-1所示,图8-1VBA示例之一鼠标在“总金额”文本框点击一下,系统就会自动计算出结果来。如图8-2所示。图8-2VBA示例之二上例中利用VBA编码实现了一些复杂的操作,那么VBA是一种什么语言呢?VBA即VisualBasicforApplications,是Access提供给用户的一种编程语言,它不同于VisualBasic语言,VBA更简单,同时继承了VB的许多语法结构,例如for、if语句等。同时扩展了Access的功能,不仅可以创建出更复杂的应用程序,还可以完成某些特殊的操作。8.1.1认识模块模块即VBA编码的集合,它是指利用Access提供的VBA语言编写的代码集。模块分为类模块和标准模块两种。类模块:是包含对象的模块,当创建一个新的类模块时,也就创建了一个新的对象,模块中定义的过程,系统都会转变为新对象的属性和方法。窗体和报表模块都属于类模块且各与某一个窗体或报表相关联。窗体和报表模块一般都含有事件过程,以响应其中的事件,控制其行为。例如,关闭一个窗体等。标准模块:这种模块独立于窗体和报表模块,包含有子过程和函数,用于以过程的形式保存代码,因此可用于程序的任何地方。模块由三部分组成:声明部分、事件过程、通用过程。如图8-3所示。通用过程事件过程声明部分图8-3模块的组成8.1.2VBA中的过程和函数过程是VisualBasicforApplications代码组成的单元,包括一系列执行操作、计算值和调用对象方法的语句。例如用下列代码可以关闭一个窗体:PrivateSubCommand0_Click()DoCmd.CloseEndSub过程通常分为Sub和Function两种。Sub即子过程,它的功能是执行一系列操作但是不返回值。Function过程(通常称为函数)将要返回一个值,例如,Str()将返回一列字符串。Sub过程的格式如下:[private|public][Static]Sub子过程名([参数[As类型],…])语句[ExitSub]语句EndSub参数列表中如果有多个参数,则中间用逗号分隔,private和public是关键字,前者是定义在本模块内使用的变量或过程,而后者是定义在全局范围内的变量或过程,它可以在任何地方使用。Function过程格式如下:[private|public][Static]Function函数名([参数[As类型],…])[As类型][语句]函数名=表达式[ExitFunction][语句]EndFunctionFunction是一个独立的过程,它可以接受和传递参数并返回一个值,并且,函数可以在表达式中使用。8.2VisualBasic编程入门8.2.1常量和变量的定义1.常量的定义常量,顾名思义就是在程序的执行过程中不能改变值的量就称为常量。例如PI,2,5等实型常量。在Access中声明一个常量的格式如下:[Public|Private]Const常量名[As类型]=表达式例如:ConstPI=3.1415926'声明一个在本模块内可使用的常量PI'PublicConsts1=abc'声明一个可在所有模块内使用的常量s1'PrivateConstd1=#8/02/2005#'声明一个可在本模块内使用的日期型常量'2.变量的定义变量即在执行程序时可以变化的量。定义变量的格式如下:Dim变量名[As类型]例如:DimcAsInteger'声明一个本模块内使用的整型变量c'PublicDimcInteger'声明一个在所有模块内使用的整型变量c'3.常量和变量的作用域常量和变量都有作用范围,如果超出这个范围,程序就不能识别,它们就成为非法的字符串。声明一个公共变量(或全局变量),可用模块声明部分中的Public语句,要声明一个公共常量可以使用PublicConst语句。如上面的例子所示。8.2.2If语句【例8-1】设计一个程序,运行程序时,要求用户在文本框中输入大写英文字母。如果用户输入大写英文字母,窗体显示“输入正确”;当输入小写字母时,窗体上显示出“输入错误,请使用大写字母!”文本框的代码如下:PrivateSubtxtCheck_KeyPress(KeyAsciiAsInteger)IfKeyAscii65OrKeyAscii90ThenMsgBox(输入有错误,请使用大写字母!)ElseMsgBox(输入正确!)EndIfEndSub“清除”命令按钮代码如下:PrivateSubcmdClear_Click()txtCheck=EndSub窗体运行如图8-4所示:图8-4验证字母大小写8.2.3For语句For语句是最常用的循环控制语句,语法格式为:For变量=初值To终值Step步长循环执行语句序列Next变量【例8-2】设计一个窗体,上面只有一个文本框,鼠标单击文本框,会出现一个消息框“还未结束,继续”,文本框显示数字从11递减到1,循环5次,代码如下:PrivateSubText0_Click()Fori=11To1Step-2MsgBox还未结束,继续!text0=iNextiEndSub运行效果如图8-5所示:图8-5for语句示例8.3.1鼠标单击鼠标单击事件(Click)是单击鼠标时触发的事件,下面举例说明。【例8-3】设计一个窗体,有标签控件、文本框控件、两个命令按钮控件,要求:单击一个命令按钮,文本框中要显示相应的文本内容,单击另一个按钮,清除文本框内容。效果如图8-9所示。图8-9“单击”事件示例8.3.2鼠标双击鼠标双击事件(DblClick)是在双击鼠标左键时触发该事件。在【例8-3】中,只要在事件选择窗口中选中“双击”事件,然后进入代码编辑窗口编辑代码。如图8-10所示。图8-10“双击”事件其事件处理程序的代码格式为:PrivateSub对象_DblClick(CancelAsInteger)语句序列EndSub
本文标题:VBA在Access中的应用
链接地址:https://www.777doc.com/doc-3395283 .html