数据库应用课件第九章VBA程序设计_第1页
数据库应用课件第九章VBA程序设计_第2页
数据库应用课件第九章VBA程序设计_第3页
数据库应用课件第九章VBA程序设计_第4页
数据库应用课件第九章VBA程序设计_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

第九章VBA程序设计在数据库的实际应用中,普通用户一般不会去直接操纵数据库管理系统本身。这就需开发一套完整的应用软件供用户进行输入、输出、查询、报表打印等操作。在Access中,要完成复杂条件下的对象操作仅靠控件向导和宏是不够的,借助VBA则可以解决实际开发中的复杂应用。本章主要介绍VBA语言的基本功能及使用,另外,将简单介绍一些用VBA编程方法如何实现对数据库的管理与访问。

..9.1VBA概述VB是一种程序设计语言,VBA则是VB的子集,功能与VB相近,我们可以像编写VB程序那样来编写VBA程序。用VBA语言编写的代码,将保存在Access中的一个模块里,通过启动这个模块,从而实现相应的功能。

Access中包含的程序模块可以分为两种类型:(1)绑定型程序模块

如:窗体模块、报表模块(2)独立程序模块独立程序模块是指Access数据库中的“模块”对象。这些模块对象可以在数据库中被任意一个对象所调用。

如:在此模块中放一些公共变量、函数等。

VBA编程环境:

..模块是将VBA声明和过程作为一个单元进行保存的集合。模块有两个基本类型:类模块和标准模块。模块中的代码以过程的形成加以组织,每一个过程都可以是一个函数过程(Function过程)或一个子过程(Sub过程)。

在Access中,绑定型程序指的是类模块;独立程序模块指的是标准模块。模块基础知识:1.类模块窗体模块和报表模块都是类模块,而且它们通常都含有事件过程,该过程用于响应窗体或报表中的事件。可以使用事件过程来控制窗体和报表的行为,以及它们对用户操作的响应,例如单击某个命令按钮。..2.标准模块标准模块是独立于窗体与报表的模块,一般用于存放公共过程(子过程和函数过程),不与其他任何Access对象相关联。在Access2003系统中,通过模块对象创建的代码过程就是标准模块。标准模块中的公共变量和公共过程具有全局性,其作用范围为整个应用系统。3.创建模块模块是以过程为单元组成的,一个模块包含一个声明区域及一个或多个子过程与函数过程,声明区域用于定义模块中使用的变量等内容。过程是包含VBA代码的基本单位,由一系列可以完成某项指定的操作或计算的语句和方法组成,通常分为:Sub过程(子过程)、Function过程(函数)等。..

(1)子过程

Sub过程(又称子过程)以关键词Sub开始,以EndSub结束,其定义语句语法格式为:[Public|Private][Static]Sub子过程名([<形参>])[As数据类型][<子过程语句>][ExitSub][<子过程语句>]EndSub对于子过程,可以传送参数和使用参数来调用它,但不返回任何值。选用关键字Public可使该过程能被所有模块的所有其他过程调用。选用关键字Private可使该过程只能被同一模块的其他过程调用。

..

(2)函数过程

函数也是一种过程,是一种特殊的、能够返回值的过程。函数过程以关键字Function开始,以EndFunction结束,其定义语句语法格式为:[Public|Private][Static]Function函数过程名([<形参>])[As数据类型][<函数过程语句>][函数过程名=<表达式>][ExitFunction][<函数过程语句>][函数过程名=<表达式>]EndFunction选用关键字Static,只要含有这个过程的模块是打开的,则在这个过程中无论是显式或隐式说明的变量值都将被保留。..

面向对象程序设计概念:

1.对象客观世界的任何实体都可以被看作是对象。Access数据库就是由各种对象组成的,表是对象,窗体和窗体上的各种控件也是对象。每个对象都具有各自的属性、方法和事件。9.2VBA编程(1)属性和方法属性用来表示对象的状态,方法用来描述对象的行为,即对象自身能够完成的动作。属性与方法的引用方式为:对象.属性名或对象.方法名,引用中的“对象”描述一般使用格式:父对象类名!子对象名。Forms!Lb1.Caption="新显示内容"Forms!Text1.SetFocus..

(2)事件和事件过程事件通常是由系统事先设定的能被对象所识别并响应的动作。如Click(单击)事件、DblClick(双击)事件等。事件过程则是响应某一事件时去执行的程序代码。

2.类类是对一类相似对象的性质描述,这些对象具有相同的性质;相同种类的属性以及方法。类是对象的抽象,而对象是类的具体实例。3.DoCmd对象DoCmd的主要功能是通过调用方法,在VBA中实现某些特定的操作。..

VBA编程基础:1.VBA中的基本数据类型(1)数值型数据类型数值型数据类型包括:Byte、Integer、Long、Single、Double和Currency。①Byte:以一个字节的无符号二进制数存储,取值范围为0~255。由于取值范围较小,用的不多②整数(Integer和Long):%是整型数的符号,可省略。&是长整型数的符号,不可省略。整数用的较多,特别是Integer例如:345、-345、345%均表示整型数,345&、-345&均表示长整型数。..

③浮点数(Single和Double)浮点数也称为实数,是带有小数部分的数值,它由3部分组成:符号、指数和尾数。表示带小数点的实数时一般用Single,对值特别大,要求可用Double例如:345!、-345.67、0.123E+6均表示单精度浮点数,123#、-345.67#、0.123E+3#、0.876D+8均表示双精度浮点数。④货币型(Currency)货币数据类型是为表示钱款而设置的。例如:3456@、123.45@均表示货币型数据。另外,VBA还支持用户自定义数据类型。自定义数据类型实质上是由基本数据类型构造而成的一种数据类型,可以根据需要来定义一个或多个自定义数据类型。..

(2)字符型数据类型(String)是放在双引号内的若干个字符,长度为0的字符串称为空字符串。例如:"123"、"VBA程序设计"等均表示字符型数据。""表示空字符串,"

"表示有一个空格的字符串。(3)日期型数据类型(Date)日期型数据按8字节的浮点数来存储,日期范围为1000年1月1日至9999年12月31日,而时间范围为00:00:00~23:59:59。例如,#April10,2008#、#11-11-2011##2008-08-1810:30:00AM#..

(4)变体数据类型(Variant)变体数据类型是一种可变的数据类型,可以表示任何值,包括数值、字符串及日期等。如果没有事先声明或使用符号(%、!等)定义变量的数据类型,系统默认为变体类型。(5)逻辑数据类型(Boolean)也称布尔型。只有True(真)或False(假)两个值。(6)对象数据类型(Object)对象型数据用来表示图形、OLE对象或其它对象,对象变量可引用应用程序中的对象。..2.常量、变量和数组(1)常量常量是在程序中可直接引用的实际值,其值在程序运行过程中不变。在VBA中,一般有以下3种常量。①直接常量实际上就是常数,数据数据的不同决定了常量的不同。例如:456、"VBA"、#2009-8-24#分别为数值型、字符型、日期型常量。②符号常量有些常量可以由用户定义的符号常量来表示,符号常量使用Const语句来创建。例如:ConstconPI=3.1415..③固有常量除了用Const语句声明常量之外,系统还预先定义了许多固有常量,编程者只要直接使用固有常量即可。例如:vbOK、vbYes、vbNo、vbRed、vbBlue分别代表“确认”、“是”、“否”、“红色”、“蓝色”。(2)变量变量是指在程序运行过程中值会发生变化的量。计算机处理变化的数据的方法是将数据存储在内存的一块临时存储空间,所以变量实际代表的就是内存中的这块被命名的临时存储空间。变量的三个要素:变量名、变量类型、变量的值。..变量的命名规则:变量名只能由字母、数字、汉字和下划线组成,不能含有空格和除下划线字符“_”之外的其它任何标点符号,长度不能超过255。.必须以字母开头,不区分变量名的大小写。例如,若以Abc命名一个变量,则abc、ABC、aBc等都认为是同一个变量。.不能和VBA的关键字重名。例如,不能以if、Dim、double等命名变量。.类型说明符只能出现在名称的后面。.为了增加程序的可读性,通常在变量名前加一个缩写的前缀来表明该变量的类型。例如用StrAbc来命名一个字符串变量。..在程序中使用变量就要给变量定义名称和类型,这就是对变量进行声明。一般变量在使用前应先声明。①使用类型说明符号声明变量允许使用类型说明符号来声明常量和变量的数据类型,如:varXy%是一个整型变量,123%则是一个整型常数,类型说明符号在使用时始终放在变量或常数的末尾。VBA中的类型说明符号见表9.1中的符号列所示。例如:X1%=123'声明intX1为一个整型变量X2#=123.456'声明douX2为一个双精度变量X3$="Access2003"

'声明strX3为一个字符串变量X4!=123.456'声明strX3为一个字符串变量..②使用Dim语句声明变量格式为:Dim变量名As[数据类型]如果不使用“数据类型”可选项,默认定义的变量为变体数据类型(Variant)。例如:DimstrXAsString‘声明strX为一个字符串变量'声明intX为整型、strX为字符串变量DimintXAsInteger,strZAsStringDimx'声明x为变体型变量Dimi,j,kAsInterger‘只有k是Integer类型,i和j都是Variant类型没有使用上述两种方法声明数据类型的变量默认为变体类型(Variant)。..VBA允许用户在编写应用程序时,不声明变量而直接使用,系统会临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是变体数据类型。例如:NewVar=123。该语句定义了一个隐含型变量,名字为NewVar,类型为Variant数据类型,值为123。在VBA编程中应尽量减少隐含型变量的使用,大量使用隐含型变量对调试程序和识别变量等都会带来困难。..(3)数组数组是由一组具有相同数据类型的变量(称为数组元素)构成的集合。数组变量由变量名和数组下标组成,在VBA中不允许隐式说明数组,可用Dim语句来声明数组。数组声明格式为:Dim数组名([下标下界to]下标上界)As数据类型下标下界的缺省值为0,数组元素为:数组名(0)至数组名(下标上界);如果设置下标下界非0,要使用to选项。例如:DimIntArray(10)AsInteger这条语句声明了一个有11个整型数组元素的数组,数组元素从IntArray(0)至IntArray(10),每个数组元素为一个整型变量,这里只指定数组元素下标上界来定义数组。..VBA中允许指定数组下标范围时使用To,如下例所示:DimIntArray1(-2to3)AsInteger该语句定义一个有6个整型数组元素的数组,数组元素下标从-2到3。如果定义多维数组,声明方式为:Dim数组名(数组第1维下标上界,数组第2维下标上界…)As数据类型DimIntArray2(3,5)AsInteger该语句定义了一个二维数组,第一维有4个元素,第二维有6个元素。..VBA中允许指定数组下标范围时使用To,如下例所示:DimIntArray1(-2to3)AsInteger该语句定义一个有6个整型数组元素的数组,数组元素下标从-2到3。如果定义多维数组,声明方式为:Dim数组名(数组第1维下标上界,数组第2维下标上界…)As数据类型DimIntArray2(3,5)AsInteger该语句定义了一个二维数组,第一维有4个元素,第二维有6个元素。数组中的每个元素都可以当作单个的变量来使用,引用格式为:数组名(下标值)例如:IntArray2(2,4)=8..运算符与表达式及函数:1.运算符VBA中的运算符可分为:算术运算符、字符串运算符、关系运算符和逻辑运算符。(1)算术运算符算术运算符用来执行简单的算术运算。VBA提供了8个算术运算符。运算优先级指的是当表达式中含有多个运算符时,各运算符执行的优先顺序。..运算符含义优先级实例结果^指数运算127^(1/3)3-取负运算2-ia-3*乘法运算3ia*ia*ia27/除法运算310/ia3.33333333333333\整除运算410\ia3Mod取模运算510Modia1+加法运算610+ia13-减法运算6ia-10-7..(2)字符串运算符字符串运算就是将两个字符串连接起来生成一个新的字符串。字符串运算符包括:&和+。①&运算符:用来强制两个表达式作字符串连接。需要注意的是:由于符号“&”还是长整型的类型定义符,在字符串变量后使用运算符“&”时,变量与运算符“&”之间还应加一个空格。运算符“&”两边的操作数可以是字符型,也可以是数值型。不管是字符型还是数值型,进行连接操作前,系统先进行操作数类型的转换,数值型转换成字符型,然后再做连接运算。..例9.3“&”运算符应用StrX="ABC"

StrX&“是大写英文字母”'出错StrX&"是大写英文字母"'结果为“ABC是大写英文字母”"abc"&"123"

'结果为“abc123”"abc"&123'结果为“abc123”123&456'结果为“123456”"2+3"&"="&(2+3)'结果为“2+3=5”..②+运算符:用来连接两个字符串表达式,形成一个新的字符串。注意:“+”运算符要求两边的操作数都是字符串。如果两边都是数值表达式时,就做普通的算术加法运算;若一个是数字型字符串,另一个为数值型,则系统自动将数值型字符串转化为数值,然后进行算术加法运算;若一个为非数值型字符串,另一个为数值型,则出错。例9.4“+”运算符应用"1111"

+2222'结果为3333"1111"

+"2222"

'结果为“11112222”"abcd"

+1212'出错4321+"1234"&100'结果为“5555100”在VBA中,连接字符串时,用“&”比用“+”更安全。..(3)关系运算符关系运算符也叫比较运算符,用来对两个表达式的值进行比较,比较的结果是一个逻辑值,即真(True)或假(False)。用关系运算符连接两个算术表达式所组成的表达式叫做关系表达式,VBA提供了9个关系运算符,如表9.3所示。在使用关系运算符进行比较时,应注意以下规则:.数值型数据按其大小进行比较。.字符型数据按其ASCII码值进行比较。.汉字字符大于西文字符。.汉字按区位码顺序进行比较。..运算符含义实例结果=等于“abcd”=”abc”False>大于“abcd”>”abc”True>=大于等于“bacd”>=”abce”False<小于“41”<”5”True<=小于等于41<=5False<>不等于“abc”<>”ABC”TrueLike字符串匹配“abc”Like”*c*”True..例9.5关系运算符应用DimS'定义变量SS=(5>2)'结果为TrueS=(2>=5)'结果为FalseS=(“abcd”>“abc”)'结果为TrueS=(“王丽”>“刘艺”)'结果为TrueS=(#2008/10/12#>#2006/11/12#)'结果为True..(4)逻辑运算符逻辑运算也称布尔运算,除Not是单目运算符外,其余均是双目运算符。由逻辑运算符连接两个或多个关系式,对操作数进行逻辑运算,结果是逻辑值True或False。VBA的逻辑运算符如表9.4所示。表9.5列出了逻辑运算真值表。运算符优先级含义Not1非,由真变假或由假变真And2与,两个表达式同时为真则结果为真,否则为假Or3或,两个表达式有一个为真则结果为真,否则为假..例9.6逻辑运算符应用DimV'定义变量VV=(5>2And3>=4)'结果为FalseV=(5>2Or3>=4)'结果为TrueV=("abcd">"abc"And3>=4)'结果为FalseV=Not(3>=4)'结果为TrueABNotAAAndBAOrBTTFTTTFFFTFTTFTFFTFF..(5)对象运算符对象运算符有“!”和“.”两种,使用对象运算符指示随后将出现的项目类型。①!运算符“!”运算符的作用是指出随后为用户定义的内容。使用“!”运算符可以引用一个开启的窗体、报表或开启窗体或报表上的控件。②.运算符“.”运算符通常用于引用窗体、报表或控件等对象的属性。引用格式为:[控件对象名].[属性名]。在实际应用中,“.”运算符与“!”运算符配合使用,用于标识引用的一个对象或对象的属性。..例如,可以引用或设置一个打开窗体的某个控件的属性。Forms![学生信息]![Command2].Enabled=False该语句用于标识“学生信息”窗体上的“Command2”控件的“Enabled”属性并设置其值为“False”。需要注意的是:如“学生信息”窗体为当前操作对象,Forms![学生信息]可以用“Me”来代替。例如:Me.Command2.Enabled=False或Me!Command2.Enabled=False对象运算符含义Forms![学生设置]标识打开的“学生设置”窗体Forms![学生设置]![Label1]标识打开的“学生设置”窗体中的“Label1”控件Reports![学生名单]标识打开的“学生名单”报表..2.表达式(1)表达式的组成表达式由常量、变量、运算符、函数和括号等按一定的规则组成,表达式通过运算得出结果,运算结果的类型由操作数的数据和运算符共同决定。在VBA中,逻辑量在表达式中进行算术运算时,True值被当成-1,False值被当成0来处理。(2)表达式的书写规则.只能使用圆括号且必须成对出现。.乘号不能省略。A乘以B应写成A*B,而不是AB。.表达式从左至右书在同一基准上书写,无高低、大小写区分。..(3)算术运算表达式的结果类型在算术运算表达式中,参与运算的操作数可能具有不同的数据精度,VBA规定运算结果的数据类型采用精度高的数据类型。(4)运算优先级不同类型运算符的优先级为:算术运算符>字符运算符>关系运算符>逻辑运算符..3.函数VBA提供了近百个内置的标准函数,在设计数据库时可以直接引用这些函数。函数的使用形式为:函数名(<参数1>[,参数2][,参数3]…)其中,参数可以是常量、变量或表达式,可以有一个或多个。每个函数被调用时,都会有一个返回值。内置函数按其功能可分为数学函数、转换函数、字符串函数、日期函数和格式输出函数。..函数函数说明应用实例返回结果Abs(N)取绝对值Abs(-2.8)2.8Int(N)返回数值表达式的整数部分,若参数为负值,返回小于等于参数的第一个负数Int(2.8)Int(-2.8)2-3Exp(N)以e为底数的指数函数,即exExp(3)20.086Log(N)以e为底的自然对数Log(10)2.3Sqr(N)计算数值表达式的平方根Sqr(25)5Sin(N)正弦函数Sin(0)0Cos(N)余弦函数Cos(0)1Round(N)对操作数四舍五入取整Round(-4.2)Round(7.8)-48Rnd[(N)]产生随机数Rnd0~1之间的数(1)数学函数数学函数与数学中的定义一致,完成数学计算功能。..(2)转换函数转换函数主要实现数据类型的转换。函数函数说明应用实例返回结果Asc(C)返回字符串首字符的ASCII值Asc("abcd")97Chr(N)ASCII值转换为字符串Chr(97)"a"Ucase(C)将字符串中的小写字母转换为大写字母Lcase("ABcd")"ABCD"Lcase(C)将字符串中的大写字母转换为小写字母Lcase("ABcd")"abcd"Str(N)将数值表达式值转换成字符串Str(-88)"-88"Val(C)将数字字符串转换成数值型数据Val("1122")Val("45edc6")112245DateValue(C)将字符串转换成日期值DateValue("2008-08-08")#2008-08-08#Hex(N)十进制数转换成十六进制数Hex(120)78Space(N)返回个数为数值表达式值的空格字符Space(4)""(4个空格)..(3)字符串函数字符串函数用来处理字符型变量或字符串表达式。要注意的是:在VBA中,字符串长度以字为单位,即每个西文字符或每个汉字都作为一个字,占两个字节。函数函数说明应用实例返回结果InStr([N1,]C1,C2[,M])在C1中从N1开始找C2,省略N1从头开始找,找不到为0Instr(1,"信息系统","信")1Len(C)字符串长度Len("信息系统")4LenB(C)字符串所占的字节数LenB("信息系统")8Left(C,N)取字符串左边N个字符Left("信息系统",2)"信息"Right(C,N)取字符串右边N个字符Right("信息系统",2)"息系统"Mid(C,N1[,N2])取子字符串,在C中从N1位开始向右取N2个字符Mid("信息系统",1,3)"信息系"Ltrim(C)去掉字符串左边空格Ltrim("信息系统")"信息系统"Rtrim(C)去掉字符串右边空格Rtrim("信息系统")"信息系统"Trim(V)去掉字符串两边空格Trim("信息系统")"信息系统"..(4)日期/时间函数日期/时间函数用于处理日期和时间型表达式或变量。函数函数说明应用实例返回结果Date()或Date系统当前日期Date2009-8-23Time()或Time系统当前时间Time()12:36:08Now系统当前日期和时间Now2009-8-2312:37:23Year(日期表达式)返回日期表达式的年份Year("2009,08,23")2009Month(日期表达式)返回日期表达式的月份Month("2009-08-23")8Day(日期表达式)返回日期表达式的天数Day("2009-08-23")23..(5)格式输出函数(略)格式输出函数使数值、日期或字符串按指定的格式输出(显示或打印)。函数格式:Format(表达式[,格式符])(6)测试函数(略)测试函数的结果为布尔型数据。(7)颜色函数①QBColor函数QBColor函数格式:QBColor(n)其功能是通过n(颜色代码)的值产生一种颜色。例如:Me!Text3.BackColor=QBColor(10)结果:文本框Text1的背景设置为绿色。..②RGB函数RGB函数格式为:RGB(N1,N2,N3)其功能是通过N1,N2,N3(红,绿,蓝)三种基本颜色代码产生一种颜色,其中N1,N2,N3的取值范围为0~255之间的整数。例如:RGB(255,0,0)对应“红”色。RGB(100,100,100)对应“深灰”色。例如:Me!Text3.BackColor=RGB(255,0,0)结果:文本框Text1的背景设置为红色。..(8)对话框输入输出函数①InputBox函数InputBox函数是一个用来输入数据的系统函数。调用该函数后,出现一个对话框,对输入信息给出提示信息、标题名和输入数据,并将输入数据赋给一个变量。格式为:InputBox(提示[,标题][,默认])例如,语句strName=InputBox("请输入您的姓名","输入","李军")..②MsgBox函数和过程MsgBox函数是一个用来显示提示信息的系统函数,会弹出一个对话框。在对话框中显示消息,等待用户单击按钮,并返回一个整数值,以告诉用户单击哪一个按钮。另外,MsgBox还可以作为一个过程来使用。MsgBox函数格式为:MsgBox(提示[,按钮][,标题])例如:

I=MsgBox("真的要退出吗?",vbYesNoCancel,"提示")MsgBox过程格式为:MsgBox提示[,按钮][,标题]例如:MsgBox"您好!"..程序语句:VBA中的语句一般分为3种类型:声明语句:用来为变量、常量、程序或过程命名,指定数据类型。赋值语句:用来为变量指定一个值或表达式。执行语句:用来调用过程、执行一个方法或函数,可以循环或从代码块中分支执行,实现各种流程控制。..1.程序语句书写规则同任何程序设计语言一样,VBA代码语句也有一定的书写规则。(1)不区分字母的大小写在VBA语句中,不区分字母大小写,但要求标点符号和括号等用英文格式。对用户自定义的变量和过程名,VBA以第一次定义的格式为准,以后引用输入时自动向首次定义的格式转换。语句中的关键字首字母总被转换成大写,其余字母转换成小写。..(2)语句书写规则通常将一条语句写在一行,若语句较长,一行写不完时,可在要续行的行尾加上续行符(空格加上下划线),在下一行续写语句代码。在同一行上可以书写多条语句,语句间用冒号“:”分隔,一行允许多达255个字符。输入一行语句并按Enter键,VBA会自动进行语法检查,如果语句存在错误,该行代码将以红色显示(或伴有错误信息提示)。..(3)注释语句便于程序的阅读与维护,应使用注释语句。例如:Rem定义2个变量Dima,ba="数据库应用"'该变量用于表明课程名称b="Access2003"Rem该变量用于指定课程使用的数据库添加到程序中的注释语句,系统默认以绿色文本显示,在VBA运行代码时,将自动忽略掉注释。..2.声明语句例如,如下程序段:PrivateSubProc()DimSasSingle,TasSingleConstPI=3.14…EndSub上述语句声明定义了一个名为Proc的局部子过程,Dim语句定义了2个名称分别为S和T的单精度变量,Const语句定义了一个名为PI的符号常量。当这个子过程被调用或运行时,所有包含在Sub和EndSub之间的语句都会被执行。..3.赋值语句赋值语句用于指定一个值或表达式给变量或常量。使用格式为:变量名=值或表达式例如:DimSasSingle,TasSingleS=1.23T=5.678N%="123"

'N值为123N%="1b234"

'出错,类型不匹配注意:赋值号左边只能是变量语句,不能是常量、常量符号或表达式。下面均为错误的赋值语句:x+y=3'左边是表达式5=sin(x)'左边是常量..程序基本结构:语句的执行方式按流程可以分为顺序结构、选择结构和循环结构三种。1.顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的语句序列。2.选择结构选择结构是在程序执行时,根据不同的条件选择执行不同的程序语句,用来解决有选择和转移的诸多问题。..例:窗体上有一个命令按钮Command1,在其Click事件过程编写代码。根据输入的半径计算球体的表面积。要求用InputBox函数输入半径值,用MsgBox函数显示计算结果。PrivateSubCommand1_Click()DimrAsSingle,areaAsSingleConstPI=3.1415r=Val(InputBox("输入半径","数据输入"))area=4*3.14*r^2MsgBox"球体表面积="&areaEndSub..(1)If语句If语句又称为分支语句,它有单路分支和双路分支两种形式。①单路分支单路分支的语句格式如下:格式一:If<条件表达式>Then<语句序列>EndIf格式二:If<条件表达式>Then<语句>TF表达式成立?语句块..例:窗体上有一个命令按钮Command1,在其Click事件过程编写代码。设口令。用If语句来判断输入密码的正确性。要求用InputBox函数输入密码值,用MsgBox函数显示判断结果。PrivateSubCommand1_Click()DimaAsSingle,bAsSinglea="123456"b=Val(InputBox("输入你的密码:"))Ifa=bThenMsgBox"密码正确!"EndIfEndSub..②双路分支双路分支的语句格式如下:格式一:If<条件表达式>Then<语句序列1>Else<语句序列2>EndIf格式二:If<条件表达式>Then<语句1>Else<语句2>TF表达式成立?语句块1语句块2..例:窗体上有一个命令按钮Command1,在其Click事件过程编写代码。设口令。用If语句来判断输入密码的正确性。要求用InputBox函数输入密码值,用MsgBox函数显示判断结果。PrivateSubCommand1_Click()DimaAsSingle,bAsSinglea="123456"b=Val(InputBox("输入你的密码:"))Ifa=bThenMsgBox"密码正确!"ElseMsgBox"密码错误!"EndIfEndSub..(2)SelectCase语句SelectCase语句又称多路分支语句,它是根据多个表达式列表的值选择多个操作中的一个对应执行。多路分支的语句格式如下:SelectCase<测试表达式>Case<比较列表1><语句序列1>Case<比较列表2><语句序列2>…Case<比较列表n><语句序列n>[CaseElse<语句序列n+1>]EndSelect表达式列表2语句块n+1语句块2表达式列表1语句块1表达式列表n语句块n……TTTFFF..例:窗体上有一个命令按钮Command1,在其Click事件过程编写代码。根据输入的学生成绩判定学生处于哪个等级,用SelectCase语句实现。要求用InputBox函数输入成绩值,用MsgBox函数显示判断结果。PrivateSubCommand1_Click()DimIntAAsInteger,StrBAsStringIntA=Val(InputBox("请输入一个整数:"))SelectCaseIntACase0To59StrB="不及格"Case60To69StrB="及格"Case70To79StrB="中等"Case80To89StrB="良好"CaseIs>=90StrB="优秀"CaseElseStrB="输入成绩错误!"EndSelectMsgBox"成绩等级为:"+StrB,vbOKOnly+vbInformation,"提示"EndSub..3.循环结构(1)For…Next语句用For…Next语句可以将一段程序重复执行指定的次数。在循环中使用一个计数变量,每执行一次循环,其值都会增加(或减少)。该语句的一般形式如下:For循环变量=初值To终值[Step步长][<语句块>]ExitFor[<语句块>]Next[循环变量]其中,循环变量必须为数值型。若未指定“步长”,则默认为1。如果“步长”是正数或0,则“初值”应大于等于“终值”,否则,“初值”应小于等于“终值”。..

循环变量=初值F循环变量≤终值?

T

循环变量+步长语句块

循环变量=初值F循环变量≥终值?

T

循环变量-步长语句块..例:窗体上有一个命令按钮Command1,在其Click事件过程编写代码。用For…Next语句,求1到100的自然数的和。要求用MsgBox函数输出计算结果。PrivateSubCommand1_Click()DimiAsInteger,SumAsIntegerFori=1To100Sum=Sum+iNextiMsgBox“1到100的自然数的和为:”_&Str(Sum),vbOKOnly+vbInformation,"提示"EndSub..(2)While语句While语句又称当型循环语句,它通过循环条件控制重复执行一组语句。While语句的一般形式如下:While<循环条件>[<语句块>]ExitDo[<语句块>]Wend或写成以下形式:DoWhile<循环条件>[<语句块>]ExitDo[<语句块>]Loop当<循环条件>为True时,执行循环体内的语句,遇到Wend语句后,再次返回,继续测试循环条件是否为True,直到循环条件为False,执行Wend语句的下一条语句。“条件”为真?语句块TF..例:窗体上有一个命令按钮Command1,在其Click事件过程编写代码。用While…Wend语句,求1到100的自然数的和。要求用MsgBox函数输出计算结果。PrivateSubCommand1_Click()DimiAsInteger,SAsIntegeri=1While(i<=100)S=S+ii=i+1WendMsgBox“1到100的自然数的和为:”&_Str(S),vbOKOnly+vbInformation,"提示"EndSub..例:窗体上有一个命令按钮Command1,在其Click事件过程编写代码。分别用For…Next语句输入数组,用DoWhile…Loop输出数组。要求用InputBox函数输入循环数组元素的每个值,用MsgBox函数分别显示每个输入的数组元素。PrivateSubCommand1_Click()DimiAsIntegerDimn(1To4)AsStringFori=1To4n(i)=InputBox("请输入第"&i&"位同学的姓名:")Nextii=1DoWhilei<=

温馨提示

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

评论

0/150

提交评论