1第10章模块本章主要考查的内容包括如下.1模块的基本概念.(1)类模块(2)标准模块(3)将宏转换为模块2创建模块(1)创建VBA模块:在模块中加入过程,在模块中执行宏(2)编写事件过程:键盘事件,鼠标事件,窗口事件,操作事件和其他事件.(3)调用和参数传递(4)VBA程序基础3面向对象程序设计的基本概念(1)VBA编程环境:;进入VBE,VBE界面(2)VBA编程基础:常量,变量,表达式(3)VBA编程流程控制:顺序控制,选择控制,循环控制(4)VBA程序的调试:设置断点,单步跟踪,设置监视点历年的全国计算机等级考试的笔试中,模块部分的分值约占18-12%,属于重点的考察对象。本章历年的考题分布情况如表10-1所示:表6-1模块部分历年考题分数分布表考点内容2004.092005.042005.092006.042006.09小计在模块中执行宏22面向对象程序设计26210VBA编程环境;VBE界面224VBA编程基础108441240VBA程序流程控制语句6868634过程调用和参数传递284216合计1818202424106由表10-1可知,本章的关键考点是在对于模块的基本操作内容的考察。模块内容的考查一直是二级Access等级考试的重点,近两年更是有所增加,因此考生应该特别注意对本部分内容的学习。10.1模块的基本概念模块有两个基本类型:类模块和标准模块.模块中的每个过程都可以是一个Function过程或一个Sub过程.窗体和报表都属于类模块,而且它们各自与某一窗体或报表关联.在窗体或报表的设计视图环境下可以用两种方法进行相应的模块代码设计区域:一是用鼠标单击工具栏上的”代码”按钮进入;第二种是为窗体或报表创建事件过程时,系统会自动进入相应代码设计区域.2窗体和报表模块通常都含有事件过程,该过程用于响应窗体或报表中的事件.可以使用事件过程来控制窗体或报表的行为及它们用户操作的响应,如果单击某个命令按钮.标准模块一般用于存放供其他Access数据库对象使用的公共过程.在Access系统中可以通过创建新的模块对象而进入其代码设计环境.标准模块通常安排一些公共变量或过程供类模块里的过程调用.在各个标准模块内部也可以私有变量和私有过程仅供本模块内部使用.标准模块中的公共变量和公共过程具有全局特性,其作用范围在整个应用程序里,生命周期是伴随着应用程序的运行而开始、关闭而结束.在Access中,系统能够自动将宏转换为VBA模块,具体操作步骤如下:(1)打开要转换为模块的窗体或报表设计视图(2)选择”工具”菜单中的”宏”子菜单中的”将窗体的宏转换为VisualBasic代码”命令或”将报表的宏转换为VisualBasic代码”命令,将弹出”转换窗体宏”对话框或”转换报表宏”对话框.(3)在”转换窗体宏”对话框或”转换报表宏”对话框中,单击”转换”按钮.将弹出”将宏转换到VisualBasic“对话框,单击”确定”按钮即可.10.2创建模块直接创建新的模块的步骤如下:(1)打开”数据库”窗口,选择”模块”对象.(2)单击窗口上部的”新建”按钮”,或选择”插入”菜单中的“模块”命令,将弹出”模块”窗口.如果需要创建类模块,则选择”插入”菜单中的”类模块”命令.(3)将所需要的声明、语句和过程添加到模块中.(4)选择”文件”菜单中的”保存”命令,或单击工具拦上的”保存”按钮将其保存在窗体模块或报表中创建过程的具体操作步骤如下:(1)打开窗体或报表的设计视图,单击工具拦的代码按钮,弹出”模块”编辑窗口.(2)在”模块”编辑窗口中,在”对象”下拉列表框中选择要创建的对象,在”过程”下拉列表框中选择触发该过程的事件.将在”代码”窗口出现一个空的私有的Sub过程.在该框架输入所需要的VisualBasic程序代码.(3)单击”保存”按钮,保存该模块.考点1:在模块中执行宏在模块的过程定义中,使用Docmd对象的RunMacro方法,可以执行设计好的宏.其调用格式为:DocMmd.RunMaCroMacroName[,RepeatCount][,RepeAtCount]其中MacroName表示当前数据库宏的有效名称:Repeatcount可选项,用于计算宏运算次数的整数值;RepeatExpression可选项,为数值表达式,在每一次运行宏时进行计算,结果为False(0)时,停止运行宏.例10.1VBA的自动运行宏必须命名为().(2005年4月填空题第10题)答案:AutoExeC例10.2Access的控件对象可以设置某个属性来控制对象是否可用(不可用时显示为灰色状态)。需要设置的属性是().(2006年4月选择题第32题)A)DefaultB)CancelC)EnabledD)Visible解析:Enabled属性来控制对象是否可用(不可用时显示为灰色状态)。Visible属性来控制对象是否可见,是较容易混淆的干扰项答案:C)310.3VBA程序设计基础考点2:面向对象程序设计的基本概念Access内的VBA,功能强大,采用目前主流的面向对象机制和可视化编程环境.VBA与传统语言的重要区别之一就是它是面向对象的.对象是VisualBasic程序设计的核心.1.对象在VBA中,对象是将数据和代码封装起来的实体,它是代码和数据的组合.2属性和方法属性和方法描述了对象的性质和行为.其引用方式为:对象.属性或对象.行为.属性是对象的特性,方法是对象可执行的行为.3.事件和事件过程事件是Access窗体或报表及其上的控件等对象可以”辨识”的动作,如单击命令按钮、鼠标或打开报表等.在Access数据库系统里,可以通过两种方式来处理窗体、报表或控件的事件响应.一是使用宏对象来设置事件属性;二是为某个事件编写VBA代码过程,完成指定动作,这样的代码过程称为事件过程或时间响应代码.事件与事件过程的区别是:事件是由系统确定好的,用户只能从中选择,而事件过程可以由用户编写.例10.3如果加载一个窗体,先被触发的事件是()(2006年4月选择题第25题)A)Load事件B)Open事件C)Click事件D)DbClick事件解析:如果加载一个窗体,先被触发的事件是Load事件;Open事件在Load事件后执行,窗体打开时,才会被触发;Click事件是单击鼠标后,触发的事件:DdClick事件是双击鼠标后,触发的事件。因此,选项A是正确选项。答案:A)考点3:VBA编程环境——VBE界面Access提供了一个编程界面:VBE1.进入VBE编程环境Access模块分成类模块和标准模块两种,它们进入VBE编程环境的方式有所不同。对于类模块,可以直接定位到窗体或报表上,然后单击工具拦上的“代码”工具按钮进入:或定位到窗体、报表和控制上的通过指定对象事件过程进入,标准,模块进入VBE编程环境的情况有三种:一是对于已存在的标准模块,只需要从“数据库”窗口对象列表上选择“模块”,双击要查看的模块对象即可进入。二是要创建新的标准模块,需从“数据库”窗口对象列表上选择“模块”,单击工具栏上“新建”按钮即可进入。三是在数据库对象窗体中,选择“工具”菜单中的“宏”子菜单中的“VisualBasic编辑器”选项即可启动VBA编辑器。2.VBA编辑器界面VBA编辑器截面由标准工具栏、工程窗口、属性窗口和代码窗口、“对象”下拉列表框、“事件”下拉列表框和“立即”窗口组成。3.在VBE环境中编写VBA代码Access的VBE编辑环境提供了完整的开发和调试工具。其中的代码窗口顶部包含两个组合框,左侧为对象列表,右侧为过程列表。操作时,从左侧组合框选定一个对象后,右侧过程组合框中会列出该对象的所有事件过程,然后从该对象事件过程列表选项中选择某个事件名称,系统会自动生成相应的事件过程摸板,用户添加代码即可。4例10.4VBA程序的多条语句可以写在一行中,其分隔符必须使用符号()。(2006年4月选择题第29题)A):B)‘C);D),解析:VBA程序的多条语句可以写在一行中,必须使用符号“:”作为分隔符。因此,选项A是正确选项。答案:A)例10.5窗体中有两个命令按钮:“显示”(控件名为cmdDisplay)和“测试”(控件名为cmdTest)。以下事件过程的功能是:单击“测试”按钮时,窗体上弹出一个消息框。如果单击消息框的“确定”按钮,隐藏窗体上的“显示”命令按钮;单击“取消”按钮关闭窗体。按照功能要求,将程序补充完整。(2006年4月填空题第14题)PrivateSubcmdTest_Click()Answer=()(“隐藏按钮”,vbOKCancel)IfAnswer=vbOKThencmdDisplay.Visible=()ElseDocmd.CloseEndIfEndSub解析:根据题意:“单击‘测试’按钮时,窗体上弹出一个消息框”。因此在Answer=()处,应该填写消息框命令MsgBox;由题目:“如果单击消息框的‘确定’按钮,隐藏窗体上的‘显示’按钮;”,可知cmdDisplay.Visible=()处,应该填写False,窗体上的“显示”按钮变为不可见。答案:Msgbox,False考点4:VBA编程基础——常量、变量、运算符和表达式1.VBA的数据类型详细见下表10-2表10-2基本数据类型类型名声明符字节Byte(单字节型)1Integer(整型)%2Long(长整型)&4Single(单精度型)!4Double(双精度型)#8Currency(货币型)@8String(字符型)$n*1Boolean(布尔型)2Date(日期型)8Variant(变体型)XObject(对象型)41.数据类型的书写格式:(1)Date(日期型)日期型数据用8个字节来存储,日期范围从公元100年1月1日到9999年12月31日,可以用#括起来放置日期和时间,允许用各种表示日期和时间的格式。5日期可以用“/”、“,”、“-”分隔开,可以是年、月、日,也可以是月、日、年的顺序。时间必须用“:”分隔,顺序是:时、分、秒。如:#1999-08-1110:25:00pm#、#08/23/99#、#03-25-7520:30:00#、#98,7,18#等都是有效的日期型数据。在VB)中会自动转换成mm/DD/yy(月/日/年)的形式。(2)Boolean(布尔型)逻辑型数据只有两个:逻辑真True和逻辑假False,用2个字节存储。当把逻辑值转化为数值型时,False为0,True为-1。(3)字符串型(String)字符串包括除双引号和回车以外可打印的所有字符,双引号作为字符串的定界符号。如:1234和张三都是字符型。注意字符串中空格是有效字符。2.变量在程序执行过程中,其值可以改变的量称为变量。格式:说明符变量名[As类型]说明符是说明语句的关键字,它可以是Dim,Private,Public,Static。例10.6在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:PrivateSubCommand1_Click()StaticbAsintegerb=b+1EndSub窗体打开运行后,三次单击命令按钮后,变量b的值是()(2006年9月填空题第11题)解析:如果在Sub或Fuction语句前家Static,则此过程中所以级别的变量值自在调用期间有所保留答案:3例10.6在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:PrivateSubCommand1_Click()a=0:b=0:c=6MsgBoxa=b+cEndSub窗体打开运行后,如果单击命令按钮,则消息框的输出结果为_()。(2006年9月选择题第30题)A)11B)a=11C)0D)False解析:”MsgBoxa=b+c”是在消息框的输出a和b+c比较的结果,因为a=0,b+c=11,ab+c,所以输出结果为False。答案:D)3.常量在程序执行的过程中保持不变的数据称为常量。在VB中,常量分为两种,文字常量和符号常量。符号常量又分为用户自定义和系统定义两种。考点5: