第7章 模块与VBA编程.ppt_第1页
第7章 模块与VBA编程.ppt_第2页
第7章 模块与VBA编程.ppt_第3页
第7章 模块与VBA编程.ppt_第4页
第7章 模块与VBA编程.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Access数据库应用技术,授课教师:联系电话:,第7章模块与VBA编程,7.1模块的基本概念7.2创建模块7.3VBA编程基础7.4VBA的流程控制7.5过程调用和参数传递7.6VBA代码调试与运行7.7VBA编程综合实例,第7章模块与VBA编程,1.模块的基本概念【1】类模块;【2】标准模块【3】将宏转换为模块2.创建模块【1】创建VBA模块:在模块中加入过程,在模块中执行宏。【2】编写事件过程:键盘事件,鼠标事件,窗口事件,操作事件和其他事件。3.调用和参数传递,4.VBA程序设计基础:【1】面向对象程序设计的基本概念【2】VBA编程环境:进入VBE,VBE界面【3】VBA编程基础:常量,变量,表达式【4】VBA程序流程控制:顺序控制,选择控制,循环控制【5】VBA程序的调试:设置断点,单步跟踪,设置监视点,教学重点,7.1模块的基本概念,模块是Access系统中的一个重要对象,它以VBA(VisualBasicforApplications)为基础编写,以函数过程(Function)或子过程(Sub)为单元的集合方式存储。Access中,模块分为类模块和标准模块两种类型。,7.1.1类模块,窗体模块和报表模块都属于类模块,它们从属于各自的窗体或报表。窗体模块和报表模块通常都含有事件过程,而过程的运行用于响应窗体或报表上的事件。窗体模块和报表模块具有局部特征,其作用范围局限在所属窗体或报表内部,而生命周期则是伴随着窗体或报表的打开而开始,关闭而结束。,7.1.2标准模块,标准模块一般用于存放供其他Access数据库对象使用的公共过程,通常安排一些公共变量或过程供类模块里的过程调用.标准模块中的公共变量和公共过程具有全局特性,其作用范围在整个应用程序里,生命周期是伴随着应用程序的运行而开始,关闭而结束。在Access系统中,根据需要可以将设计好的宏对象转换为模块代码形式。,2.一般用于存放其他Access数据库对象使用的公共过程称为()。类模块B.标准模块C.宏模块D.窗体模块,7.2创建模块,过程的概念:过程是模块的单元组成,由VBA代码编写而成。过程分两种类型:Sub子过程和Function函数过程。,7.2.1在模块中加入过程,模块是装着VBA代码的容器,一个模块包含一个声明区域,且可以包含一个或多个子过程(以Sub开头)或函数过程(以Function开头)。子过程的定义:子过程是一系列由Sub和EndSub语句所包含起来的VBA语句,只执行一个或多个操作,而不返回数值。,定义格式如下:Sub子过程名程序代码EndSub,其命名与变量命名规则相同,子过程开始,子过程结束,完成某个功能的子过程体内部不能再定义其他过程,但可用Call命令调用其他过程,“Sub子过程名”和“EndSub”必不可少,函数过程的定义:函数过程通常情况下称为函数,是一系列由Function和EndFunction语句所包含起来的VBA语句。Function过程和Sub过程很类似,但函数过程可以通过函数名返回一个值。定义格式如下:Function函数过程名As返回值类型程序代码EndFunction,函数开始,函数结束,函数体内不允许定义其他的函数过程和子过程,可直接引用函数过程名,并由接在函数过程名后的括号所辨别,20.在VBA中有返回值的处理过程是()声明过程B.Sub过程C.Function过程D.控制过程,创建过程:子过程或函数过程既可以在标准模块中建立,也可以在窗体模块中建立。方法:在VBE中执行“插入过程”菜单命令,7.2.2在模块中执行宏,在模块的过程定义中,使用Docmd对象的RunMacro方法,可以执行设计好的宏。其调用格式为:Docmd.RunMacroMacroName,RepeatCount,RepeatExpression其中,MacroName表示当前数据库中宏的有效名称;RepeatCount可选项,用于计算宏运行次数的整数值;RepeatExpression可选项,数值表达式,在每一次运行宏时进行计算,结果为False时,停止运行宏。,7.3VBA编程基础,VBA(VisualBasicforApplication)是MicrosoftOffice内置的编程语言,是根据VB简化的宏语言。计算机的程序设计语言有很多,如Fortran,Cobol,Basic,Pascal,C,C+,Java,Delphi等,它们各有特点和不及适用领域。其中,Basic最初是专门针对初学者而设计的程序开发语言,因其问世后广泛被使用,再加上Windows的流行,微软公司开发了VisualBaisc作为Windows环境下的应用程序开发工具。,VBA是根据VisualBasic的简化宏语言,其基本语法、词法与VisualBasic基本相同,简单易学,采用的是一种面向对象的程序设计方法。与VisualBasic不同的是,VBA不是一个独立的开发工具,一般被嵌入到像Word,Excel,Access这样的宿主软件中,与其配套使用,从而实现程序开发功能。,7.3.1面向对象程序设计基本概念,对象和类对象是现实世界中个体或事物的抽象表示,是由描述事物状态的有关数据和对这些数据可以进行的相关操作共同组成的。每一个对象有自己的属性、方法和事件,用户就是通过属性、方法和事件来处理对象的。,类是对象的抽象,而对象是类的具体实例,每个对象由类来定义。DoCmd对象:DoCmd对象的主要功能是通过调用Access内置的方法,在VBA中实现某些特定的操作。事件过程对象在识别了所发和的事件后执行的代码叫事件过程。因此想要让系统响应某个事件,就要将响应事件所要执行的程序代码添加入相应的事件过程。,7.能被“对象所识别的动作”和“对象可执行”的活动分别称为对象的()。A.方法和事件B.事件和方法C.事件和属性D.过程和方法,19.在Access中编写事件过程使用的编程语言是()A.QBASICB.VBAC.SQLD.C+,7.3.2VBA的编程环境,VBE,17.VBA代码调试过程中,能够显示出所有在当前过程中变量声明及变量值信息的是()。A.本地窗口B.立即窗口C.监视窗口D.快速监视窗口,启动VBE的常用三种方法,直接进入,创建模块进入,通过对象进入,VBE环境中编写VBA代码例7.1新建一个窗体并在其上放置一个命令按钮,然后创建该命令按钮的“单击”事件响应过程。单击后弹出“测试完毕”消息。,7.3.3基本数据类型,字符型(String,)、字节型(Byte)、整型(Integer,%)、长整型(Long,&)、单精度型(Single,!)、双精度(Double,#)小数型(Decimal)、货币(Currency,)逻辑(Boolean)、日期型(Date)、对象型(Object)、变体型(Variant),4.布尔型数据转换为其他类型数据时,False转换为()。0B.1C.-1D.2,5.连接式“3+4”&“=”&(3+4)的运算结果为()。3+4B.&3+4C.(3+4)&D.3+4=7,7.3.4常量、变量、数组,什么是定义:常量、变量?常量或变量的命名规则:(1)常量或变量的名字须以字母或汉字开头,后跟字母、汉字、数字或下划线组成的序列,长度不能超过255个字符;(2)不能使用VBA中的关键字命名常量或变量;(3)VBA不区分常量或变量名中的大小写字母,如XYZ,xyz,Xyz等均视为相同名字。,下列变量命名正确的是:AX33sbow-yifbook_1s*T,常量:在程序运行的过程中其值不会发生变化VBA支持4种类型的常量:直接常量、符号常量、固有常量和系统定义常量。变量:在程序运行的过程中其值是可以发生变化变量定义:DimAS,显示声明变量隐式声明变量变量的应用范围,局部范围,模块范围,全局范围,变量的生存周期:变量第一次(声明时)出现到消失时所持续的时间.数组:是一个由相同数据类型的变量构成的集合,数组在使用之前应该加以声明,说明数据元素的类型、数组大小、数组的作用范围。固定大小数组的声明:Dim数组名(下标下界To下标上界)As数据类型,如DimArray(7)AsInteger,StaticArray(19,19)AsInteger,动态数组的声明:A)先声明空数组及数据类型,如DimArray()AsIntegerB)在使用数组前再声明数组大小,如ReDimArray(10),10.定义了二维数组A(3to5,6),则该数组的元素个数为()。17B.27C.21D.30,7.3.5运算符与表达式,VBA编程语言提供了多种类型的运算符完成对数据的各种运算和处理,主要包括4种类型的运算符:1.算术运算符及算术表达式2.连接运算符与字符串表达式3.关系运算符与关系运动表达式4.逻辑运算符与逻辑表达式,9.下列逻辑表达式中,能正确表示条件“X和Y至少有一个是偶数”的是()。XMod2=0OrYMod2=0B.XMod2=1OrYMod2=1C.XMod2=0AndYMod2=0D.XMod2=1AndYMod2=1,14.以下可以得到2+6=7的结果的VBA表达式是()。2+6&=&2+6B.2+6+=+2+6C.2+6&=&2+6D.2+6+=+2+6,表达式的运算顺序表达式的运算顺序由高到低为:函数运算、算术运算、关系运算、逻辑运算。优先级高的运算先进行,优先级相同的运算依照从左向右的顺序进行,1.在VBA语言中,以下关于运算优先级比较,叙述正确的是()。A.算术运算符关系运算符连接运算符逻辑运算符B.算术运算符连接运算符关系运算符逻辑运算符C.关系运算符算术运算符连接运算符逻辑运算符D.关系运算符连接运算符算术运算符逻辑运算符,7.3.6常用标准函数,VBA提供了大量几个内部标准函数,可方便地完成许多操作。使用形式:函数名(参数1,参数2,参数3,)其中函数名必不可少,函数的参数放在函数后面的圆括号中,参数可以是常量、变量或表达式。VBA的内部函数大体可分为:转换函数、数学函数、字符串函数、时间/日期函数和随机函数。,15.用于获得字符串str从第2个字符开始的3个字符的函数是()。A.Mid(str,2,3)B.Middle(str,2,2)C.Right(str,2,3)D.Left(str,2,3),例7.2利用随机函数,设计一个“猜数字”游戏,如图7.13所示,用户从键盘输入16之间的任意数字,看是否和电脑随机出现的数字相同。,7.3.7输入输出函数和过程,VBA与用户之间的直接交互是通过InputBox()函数、MsgBox()函数和MsgBox过程进行的。1.InputBox(prompt,title,default,xpos,ypos)函数InputBox()产生一个作为输入数据界面的对话框,等待用户输入数据或按下按钮,并返回所输入的内容,返回值是String类型的。注意:每执行一次InputBox()只能输入一个数据,2.MsgBox(msg,type,title)函数MsgBox()函数可以向用户传送信息,并可通过用户在对话框上的选择,接收用户所作的响应,返回一个整型值,以决定其后的操作。,MsgBoxMsg,type,title过程MsgBox语句没有返回值,因此常被用于简单的信息显示.,11.以下程序段运行后,消息框的输出结果是()。a=Sqr(5)b=Sqr(4)c=abMsgBoxc+2A.-1B.1C.2D.出错,7.4VBA的流程控制,VBA程序是由大量语句构成,一个语句是能够完成某项操作的一条命令。VBA程序语句按其功能不同分为2类:一是声明语句,用于变量、常量、过程定义二是执行语句,用于执行赋值操作、调用过程、实现各种流程控制执行语句又分为3种:顺序结构、分支结构、循环结构,6.根据条件选择执行路径,又可称选择结构的执行语句是()。顺序结构B.条件结构C.循环结构D.层次结构,7.4.1顺序控制,1.VBA语句书写规则VBA源代码不区分字母的大小写语句书写自由同一行上可以写多个语句,语句间用冒号“:”分隔;一个语句可分为若干行书写,但须在行后加续行标志(空格加下划线“_”)。,2.VBA的基本语句赋值语句格式:目标操作符=源操作符注释语句以关键字Rem开头引导的注释内容,可添加到程序任意位置。以引导的注释内容,可直接出现在语句后面。结束语句格式:End当在程序中执行End语句时,将终止当前程序,重置所有变量,并关闭所有数据文件,PrivateSubArea()Rem定义长、宽两个变量DimlengthAsSingle长方形的长DimheightAsSingle长方形的宽Rem通过输入框输入长与宽,并将值变成数值型length=Val(InputBox(请输入长方形的长)height=Val(InputBox(请输入长方形的宽)a=length*height计算面积MsgBoxStr(a),vbDefaultButton1,面积EndSub,7.4.2条件语句,1.单行结构条件格式:IfThenelse解释:如果成立,则执行,否则执行若没有否则,则else可省略。,2.块结构条件格式:IfThenElseIfThenElseIfThenElseEndIf,比如:判断考试成绩(score)如果0score60,则显示“不及格”如果60=score70,则显示“及格”如果70=score70,则显示“中等”如果70=score90,则显示“良好”如果90=score=100,则显示“优秀”,3.多分支结构格式:SelectCaseCaseCaseCaseElseEndSelect,通常是变量或常量,可以是数值或字符串表达式,可称为“测试表达式”的值域,4.IIf函数和Choose函数IIf(条件,True部分,False部分)当条件为真时,返回True部分的值;当条件为假时,返回False部分的值。条件是逻辑表达式或关系表达式。如:y=IIf(x=0,0,1/x)Choose(变量,值为1的返回值,值为2的返回值,值为n的返回值),7.用于实现多路分支的是()。Select语句B.If语句C.Switch语句D.IfElse语句,程序设计:例7.3给出a,b,c的值,问它们能否构成三角形的3边。如能构成三角形,计算出此三角形的面积。,7.4.3循环结构,1.fornext格式:For=tostepExitForNext循环变量必须为数值类型循环次数=Int(终值-初值)/步长)+1例:求自然数n的阶乘.,16.假定有以下程序段n=0Fora=1to5Forb=2to10Step2n=n+1NextbNexta运行完毕后,n的值是()。A.0B.1C.10D.25,17.假定有以下程序段n=0Fori=1to3Forj=-4to-1n=n+1NextjNexti运行完毕后,n的值是()。A.0B.3C.4D.12,2.WhileWend格式While条件循环体Wend说明:如果条件为真,则执行循环体.若条件一直为真则构成死循环.例:求100以内自然数的和.,3.DoLoop格式DoWhile|UntilExitDoLoopDoExitDoLoopWhile|Until例7.6用DoLoop先判断条件,求100以内自然数的和。,12.假定有以下循环结构:DoUntil条件循环体Loop则正确的叙述是()A.如果“条件”值为0,则一次循环体也不执行B.如果“条件”值为0,则至少执行一次循环体C.如果“条件”值不为0,则至少执行一次循环体D.不论“条件”是否为“真”,至少要执行一次循环体,7.5.1过程调用,1.过程调用格式:函数过程名(实参列表)Call子过程名()or子过程名,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论