access第8章VBA程序设计ppt课件(全)_第1页
access第8章VBA程序设计ppt课件(全)_第2页
access第8章VBA程序设计ppt课件(全)_第3页
access第8章VBA程序设计ppt课件(全)_第4页
access第8章VBA程序设计ppt课件(全)_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、第8章 模块与VBA编程本章内容8.1 模块概述8.2 VBA编程环境8.3 面向对象程序设计8.4 VBA编程语言基础8.5 VBA程序流程控制语句8.6 VBA过程调用与参数传递8.7 VBA程序调试8.1 模 块 概 述 模块是Access数据库中的一个数据库对象,它以VBA(Visual Basic for Application)语言为基础编写。 8.1.1 模块的类型类模块 可以包含新对象的定义的模块。一个类的每个实例都新建一个对象。 窗体模块和报表模块都是类模块。Access有两种类型的模块:类模块和标准模块。标准模块 简称“模块” 。大多数模块都是标准模块,其中包含的代码和特定

2、的数据库对象并无关联,当数据库中对象被移动时,模块还在原数据库中不动。8.1.2 将宏转换为模块 转换窗体或报表中的宏 将窗体或报表引用的任意宏转换为VBA代码,并向窗体或报表的类模块中添加该代码。该类模块将成为窗体或报表的组成部分,并且如果窗体或报表被移动或复制时,它也随之改变。 例8-1 将“打开学生表”窗体中的宏转换为模块。 转换全局宏 例8-2 将“打开学生表”全局宏转换成VBA代码。操作步骤如下:8.1.3 模块的结构模块声明部分 可以在这部分定义变量、常量、自定义类型和外部过程。在模块中,声明部分与过程部分是分割开来的,声明部分中设定的常量和变量是全局性的,可以被模块中的所有过程调

3、用。过程定义部分 这是一种自动执行的过程,用来对用户或程序代码启动的事件或系统触发的事件做出响应。类模块中的过程大部分是事件过程,也可以包含仅供本模块调用的过程和函数。标准模块中的过程和函数均为通用过程,可以供本模块或其他模块中的语句调用。8.2 VBA编程环境 在Access中,VBA程序是使用VB编辑器(Visual Basic Editor,VBE)编写的。VBE是编辑、编译、运行、调试VBA代码的集成环境。8.2.1 打开VBE窗口 启动VBE的方法:在数据库中,单击“数据库工具”选项卡“宏”选项组中的Visual Basic按钮。在数据库中,单击“创建”选项卡“宏与代码”选项组中的V

4、isual Basic按钮。创建新的标准模块。单击“创建”选项卡“宏与代码”选项组中的“模块”按钮,就在VBE编辑器中创建一个空白模块。如果已有一个标准模块。在“导航窗格”窗口选择“模块”对象列表中的该模块,就会打开VBE窗口并显示该模块的内容。在窗体、报表的设计视图中,右击控件对象,再选择快捷菜单上的“事件生成器”命令,打开 “选择生成器”对话框,选择其中的“代码生成器”选项,单击“确定”按钮。8.2.2 VBE窗口8.3 面向对象程序设计属性方法事件 VBA程序设计是一种面向对象的程序设计。面向对象程序设计是一种系统化的程序设计方法,它基于对象模型,采用面向对象的程序设计语言编程实现。事件

5、过程8.3.1 属性 属性是对象所具有的性质特征。窗体设计中,通过“属性表”对所选对象的属性进行可视化设置,这种设置属性的方式成为静态设置。也可以通过编写代码的方式设置对象的属性,在VBA代码中设置属性的方式称为动态设置。8.3.1 属性1. 对象属性的代码表示方法 在代码中引用控件对象属性的引用格式是: 对象名.属性名=属性值说明:Me是VBA编程中使用频率较高的关键字,Me是“包含这段代码的对象”的简称,可以代表当前对象。在类模块中,Me代表当前窗体或当前报表。在VBA代码中可以使用Form表示当前窗体。若省略,则表示引用的是当前窗体中的对象。属性名必须使用英文字符表示。8.3.1 属性

6、2.常用控件对象的属性属性标识功能使用举例Name唯一标识每个对象Caption窗体标题栏上的内容,控件上的标题内容Label1.caption=计算Cancel指定命令按钮是否是窗体上的“取消”按钮Default指定命令按钮是否是窗体上的“默认”按钮Enabled用于设置对象是否可用,如果值为False为灰色不可用Command1.enabed=falseVisible用于设置对象是否可见,如果值为False为不会显示Command1.visible=falseFontbold设置字体是否加粗,如果为True字体加粗Label1.fontbold=trueFontname设置字体名Text1

7、.fontname=”隶书”Fontsize字体的大小值Label1.fontsize=20Forecolor标题的颜色Text1.forecolor=RGB(0,0,255)TabIndex在窗体中Tab键次序中的位置Left控件左上角距窗体左边界的距离Label1.left=20Top控件左上角距窗体上边界的距离Text1.top=10Width控件的宽度Label1.width=20Height控件的高度Label1.width=30Value文本框中的内容Text1.value=100text设置文本框中显示的文本(要求文本框先获得焦点)Text1.text=1008.3.2 方法 对

8、象的方法是对象可以执行的行为。如果说,对象的属性是静态规格,那么对象的方法便是动态操作。每个对象都有自己的若干方法,从而构成该对象的方法集。可以把方法理解为内部函数,可以用来完成改变对象的当前状态某种特定的功能。1. 对象方法的引用方式:对象名.方法名2. SetFocus方法:使对象获得焦点,只有获得焦点的控件才是当前操作的对象。3. DoCmd对象方法:它的主要功能是通过调用包含在内部的方法实现VBA编程中对Access的操作。 8.3.3 事件 事件是Access预先定义好的,能被对象识别的动作。事件作用于对象,对象识别事件并做出相应的反应,如单击事件(Click)、双击事件(DblCl

9、ick)、移动鼠标事件(MouseMove)等都能引起对象做出操作。 事件是固定的,由系统定义好的,用户不能定义新的事件,只能引用。 8.3.3 事件 1. 窗体对象事件 事件动作动作说明Load窗体加载时发生事件UnLoad窗体卸载时发生事件Open窗体打开时发生事件Clase窗体关闭时发生事件Click窗体单击时发生事件DblClick窗体双击时发生事件MouseDown窗体鼠标按下时发生事件KeyPress窗体上键盘按键时发生事件KeyDown窗体上键盘按下键时发生事件8.3.3 事件 1. 窗体对象事件 事件动作动作说明Load窗体加载时发生事件UnLoad窗体卸载时发生事件Open窗

10、体打开时发生事件Clase窗体关闭时发生事件Click窗体单击时发生事件DblClick窗体双击时发生事件MouseDown窗体鼠标按下时发生事件KeyPress窗体上键盘按键时发生事件KeyDown窗体上键盘按下键时发生事件当窗体首次打开时,依次触发了下列事件,顺序是:打开(Open)加载(Load)调整大小(Resize)激活(Activate)成为当前(Current)。关闭窗体时事件触发顺序:卸载(Unload) 停用(Deactivate) 关闭(Close)。8.3.3 事件 2. 报表对象事件 事件动作动作说明Open 报表打开时发生事件Close 报表关闭时发生事件3. 命令按

11、钮控件事件事件动作动作说明Click 按钮单击时发生事件DblClick 按钮双击时发生事件Enter按钮获得输入焦点之前发生事件GetFocus 按钮获得输入焦点时发生事件MouseDown按钮上鼠标按下时发生事件KeyPress按钮上键盘按键时发生事件KeyDown按钮上键盘按下键时发生事件8.3.3 事件 4. 标签控件事件 5. 文本框控件事件事件动作动作说明Click标签单击时发生事件DblClick标签双击时发生事件MouseDown标签上鼠标按下时发生事件事件动作动作说明AfterUpdate 文本框内容更新后发生事件Enter 文本框获得输入焦点之前或拥有输入焦点之后按回车时发

12、生事件GetFocus 文本框获得输入焦点时发生事件LostFocus 文本框失去输入焦点时发生事件Change 文本框内容更新时发生事件KeyPress 文本框内键盘按键时发生事件MouseDown 文本框内鼠标按下时发生事件事件动作动作说明BeforeUpdate文本框内容更新前发生事件8.3.4 事件过程在Access的程序设计中,需要从对象属性和事件方法两个方面进行设计,其中事件响应可以通过“宏”操作,也可以通过编写某个事件过程代码,由程序来完成指定操作。事件过程用来识别对象的激发,存在于对象模块中,当事件被激发时事件过程就自动执行。对象事件过程的编写方法是进入VBE代码编辑窗口,进行

13、代码编写。8.3.4 事件过程在Access的程序设计中,需要从对象属性和事件方法两个方面进行设计,其中事件响应可以通过“宏”操作,也可以通过编写某个事件过程代码,由程序来完成指定操作。事件过程用来识别对象的激发,存在于对象模块中,当事件被激发时事件过程就自动执行。对象事件过程的编写方法是进入VBE代码编辑窗口,进行代码编写。8.3.4 事件过程1. 代码编写方法进入对象代码生成器的方法有以下3种:在窗体、报表的设计视图中,右击控件对象,选择如下图所示快捷菜单上的“事件生成器”命令,就会出现代码编辑器。 对象的快捷菜单 “代码生成器”窗口8.3.4 事件过程1. 代码编写方法如果是对该对象的第

14、一次操作,将出现如下图所示的“选择生成器”对话框。选择“代码生成器”后单击“确定”按钮。也会进入代码编辑器窗口。 8.3.4 事件过程1. 代码编写方法选择控件对象,单击属性窗口的“事件”选项卡,选中某个事件并单击属性栏右边的省略号按钮,也可以打开“选择生成器”对话框,选择其中的“代码生成器”选项,单击“确定”按钮。命令按钮Command1的Click事件过程名为“Command1_Click”。该子程序就是处理该事件的程序,称为事件过程,一般格式如下:Private Sub 对象名_事件名(参数表)(事件过程代码)End Sub8.3.4 事件过程2. 案例 创建如图所示的名为“计算球体体积

15、”窗体,窗体上有文本框text1和text2,标签label1和label2,两个命令按钮command1(计算)和command2(退出),窗体实现在text1中输入一个数据,单击命令按钮command1时,在text2里显示以其为半径的球体体积。命令按钮command1(计算)的事件代码如下:Private Sub Command1_Click()r = Text1.Valuev = (4 / 3) * 3.14 * r 3Text2.Value = vEnd Sub8.4 VBA编程语言基础8.4.1 数据类型数据类型类型关键字类型符存储空间取值范围整型Integer%2-3276832

16、767长整型Long&4-21474836482147483647单精度浮点型Single!4负数:-3.402823E38-1.401298E-45正数:1.401298E-453.402823E38双精度浮点型Double#8负数:-1.79769313486232E308-4.94065645841247E-324正数:4.94065645841247E-3241.79769313486232E3088.4 VBA编程语言基础8.4.1 数据类型数据类型类型关键字类型符存储空间取值范围货币型Currency8-922337203685477.5808922337203685477.580

17、7日期型Date无8100年1月1日9999年12月31日字符型String$暂不定0字符65400个字符字节型Byte无10255逻辑型Boolean无2True或False对象型Object无4任何引用的对象变体型Variant无暂不定数字和双精度相同;文本和字符串相同8.4.2 常量1. 直接常量不同类型的直接常量有不同的表示方法,使用时应遵循相应的规则,常用的表示方法如下:(1) 数值型:十进制整数由数字09和正、负号组成,实数可采用小数表示形式或科学记数表示形式。科学计数法用E表示10的乘幂。如:123、-489、2.34E-3。(2) 字符型:字符串常量是一个用双引号括起来的字符序

18、列。在字符串中,字母的大小写是有区别的。如:abc、吉林财经。(3) 布尔型:有True和False两个值。(4) 日期型:以字面上可被认作日期和时间的字符并用一对“#”括起来表示。如:#2015-11-25#。8.4.2 常量2. 符号常量 符号常量是用标识符来表示某个常量,用户一旦定义了符号常量,在以后的程序中不能用赋值语句来改变它们的值,否则,在运行程序时将出现错误。 标识符是用来表示用户所定义的常量、变量、过程、函数等程序要素的符号。在VBA中,标识符的命名必须是以字母或汉字开头,且只能由汉字、字母(az或AZ)、数字(09)或下划线(_)所组成,其最大长度为255个字符。此外,不能使

19、用VBA的关键字作为标识符,标识符不区分大小写。 在VBA中声明常量的语句格式如下:Const常量名 As 数据类型|类型符=表达式,常量名 As 数据类型|类型符=表达式8.4.2 常量3. 系统常量 系统常量是Access系统内部包含有若干个启动时就建立的系统常量,有True、False、Yes、No、On、Off和Null等。编码时可以直接使用。4. 固有常量 VBA提供的一些预定义的内部符号常量,通过前两个字母来指明定义该常量的对象库。来自Access的常量以“ac”开头,来自VB库的常量则以“vb”开头,来自ADO库的常量以“ad”开头。如:acForm、adAddNew、vbCur

20、rency。8.4.3 变量 变量是指在程序运行过程期间其值可以变化的量。在VBA 代码中声明和使用指定的变量来存储值、计算结果或操作数据库中的任意对象。一个变量有3个要素:变量名、数据类型和变量值。在VBA代码中,通过变量名来引用变量。1. 变量的命名变量命名时应遵循以下准则:(1) 变量名必须以英文字母开头,可以包含字母、数字或下划线字符“_”(2) 变量名不能包含空格、句点等字符。(3) 变量名的长度不能超过255个字符,且变量名不区分大小写。(4) 不能在某一范围内的相同层次中使用重复的变量名。(5) 变量的名字不能是VBA的关键字,如For、To、Next、If等。如a1、b_1、s

21、a等可以作为变量名,1a、b.1、x-1等不能作为变量名。8.4.3 变量2. 变量的声明 声明变量有两个作用,一是指定变量的数据类型,二是指定变量的作用范围。如果在程序中没有明确声明变量,VBA会默认将它声明为Variant数据类型。 (1) 显式声明变量显式声明变量要使用Dim语句,Dim语句的格式为:Dim 变量名 As 数据类型|类型符,变量名 As 数据类型|类型符8.4.3 变量2. 变量的声明 (2) 隐式声明变量 隐式变量是指没有直接定义,借助将一个值指定给变量名的方式建立的变量。当在变量名称后没有附加类型符来指明隐含变量的类型时,默认为变体类型。 (3) 变量的强制声明 在V

22、BA中可以强制要求在过程中使用变量前必须进行声明,方法如下:方法一:在模块通用声明部分中包含一个Option Explicit语句,它要求在模块级别中强制对模块中所有使用的变量显式声明。方法二:在VBE窗口中,选择“工具”菜单“选项”命令,打开“选项”对话框。在“编辑器”选项卡下,选择“代码设置”栏中的“要求变量声明”复选框。8.4.4 数组1. 定义一维数组(1) 格式1 Dim ( to ) As 例如:Dim y(1 to 5) As Integer。该语句声明数组变量为y,该数组元素从y(1)y(5)共有5个元素。(2) 格式2Dim ( ) As 例如:Dim x(5) As Int

23、eger。声明数组变量为x,该数组元素从x(0)x(5)共有6个元素。8.4.4 数组2. 定义多维数组格式:Dim (,) As 例如:Dim b(1 to 3,3 to 5) as Integer。 定义二维数组,每个元素都为整型,行下标下界为1,上界为3,共3行,列下标下界为3,上界为5共3列,该数组共3*3=9个元素,各元素分别表示为:b(1,3)、b(1,4)、b(1,5)、b(2,3)、b(2,4)、b(2,5)、b(3,3)、b(3,4)、b(3,5)。 例如:Dim C(3,1 to 3) as Integer定义二维数组,每个元素都为整型,行下标下界为0,上界为3,共4行,列

24、下标下界为1,上界为3共3列,该数组共4*3=12个元素。8.4.5 函数与表达式1. 函数在VBA中,除在模块创建中可以定义子过程与函数过程完成特定功能外,又提供了近百个内置的标准函数,可以方便地完成许多操作。标准函数一般用于表达式中,有的能和语句一样使用。其使用形式如下: 函数名(参数1,参数2,参数3,参数4,参数5)其中,函数名必不可少,函数的参数放在函数名后的圆括号中,参数可以是常量、变量或表达式,可以有一个或多个,少数函数为无参函数。8.4.5 函数与表达式2. 表达式表达式是将常量、变量、字段名、控件属性和函数用运算符组合而成的式子,用于完成各种形式的运算和处理。在VBA中有5类

25、运算符,使用这些运算符可以分别构成算术表达式、字符表达式、关系表达式、逻辑表达式和对象引用表达式。8.5 VBA程序流程控制语句基本语句顺序结构分支结构循环结构12348.5.1 基本语句1. 程序语句的书写规则VBA程序是由语句组成的,程序语句有严格的书写规则。(1) 通常一行书写一条语句,如果语句较长,一行写不下时,可以在末尾使用续行符“_”将语句写在下一行。(2) 当将几条语句写在一行时,使用“:”分隔各语句。(3) 一条命令以Enter键作为结束标志。(4) 语句中的英文不区分大小写。(5) 建议采用缩进格式书写程序,让程序中同级别的语句在同一列对齐。使用缩进格式书写的程序能清楚地显示

26、程序的结构,不仅帮助用户阅读程序,还有利于程序的维护。8.5.1 基本语句2. 注释语句注释语句对程序的维护有很大的好处。在VBA程序中,注释可以通过以下两种形式实现:(1) 格式1:注释内容(可以在代码后面)如 Dim x as Integer 定义整型变量x(2) 格式2:Rem 注释内容(必须独立一行)如:Rem 定义整型变量 Dim x as Integer8.5.1 基本语句3. 赋值语句 赋值语句是为变量指定一个值或表达式。通常以等号(=)连接。其使用格式为:变量名值或表达式如:Dim x as Integer 定义整型变量x x=100 给变量x赋值1008.5.1 基本语句4.

27、 输入输出语句(1) InputBox()函数InputBox()函数的作用是显示一个输入对话框,对话框中有一些提示信息及文本框,等待用户输入信息或按下按钮。在按钮事件发生后返回文本框中输入内容的值,返回值的类型为文本类型。格式: InputBox(提示 , 标题 , 缺省值 , x 坐标位置 , y 坐标位置)参数说明:“提示”:唯一不能省略的选项,是字符串表达式,在对话框中作为提示信息显示。“标题”:字符串表达式,在对话框的标题栏显示。可省略。“缺省”:当无输入新值时,则该缺省值作为输入的内容。“x坐标位置”和“y坐标位置”:确定对话框在屏幕上的位置。注意: 若用户单击“取消”,该函数返回

28、长度为零的字符串 ()8.5.1 基本语句4. 输入输出语句(2) MsgBox()函数MsgBox()过程的作用是使用其消息框输出信息。MsgBox函数格式:MsgBox( 提示 ,按钮 , 标题)MsgBox过程格式:MsgBox 提示 ,按钮 ,标题参数说明:“提示”:唯一不能省略的选项,用于在对话框上输出结果或提示性文本。“按钮”:用来指定对话框中按钮的个数和形式,默认值为0,其值与按钮数目和图标样式的对应关系如表所示。“标题”:参数用于指定该对话框的标题,若省略则用“Microsoft Access”作为标题。注意:MsgBox 函数与 MsgBox 过程的格式区别,前者有一对圆括号

29、,后者没有圆括号。8.5.1 基本语句MsgBox()函数中按钮与图标的参数值分组常数值 buttons 参数的各组的设置值描述按钮类型与数目 vbOKOnly0只显示“确定”按钮 vbOKCancel1显示“确定”及“取消”按钮 vbAbortRetryIgnore2显示“终止”、“重试”及“忽略”按钮 vbYesNoCancel3显示“是”、“否”及“取消”按钮 vbYesNo4显示“是”及“否”按钮 vbRetryCancel5显示“重试”及“取消”按钮图标样式 vbCritical16显示Critical Message图标 vbQuestion32显示Warning Query图标

30、vbExclamation48显示Warning Message图标 vbInformation64显示Information Message图标按钮默认值 vbDefaultButton10第一个按钮是默认值 vbDefaultButton2256第二个按钮是默认值 vbDefaultButton3512第三个按钮是默认值 vbDefaultButton4768第四个按钮是默认值8.5.1 基本语句案例:用Inputbox()和Msgbox()设计名为“欢迎登录”窗体。窗体的设计视图如下图所示,单击“登录”按钮,运行窗体界面所示。 欢迎登录窗体设计视图 在command1(输入用户信息)按钮

31、输入事件代码如下:Private Sub Command1_Click()xm = InputBox(请输入姓名)MsgBox 欢迎 & xm & 使用本系统End Sub运行窗体界面8.5.2 顺序结构 顺序结构是最简单的一种结构,计算机按照语句的排列顺序依次执行每一条语句。数据结构的语句主要是赋值语句和输入输出语句。 例:在数据库中,建立一个能够计算圆面积的模块。 在代码窗口输入程序代码如下。Sub 模块1()Dim r As Single 定义半径 Dim square As Single 定义存放面积的字符 Const PI = 3.1416 设置常数PI r = InputBox(请

32、输入半径:) 为r赋值 square = PI * r * r 面积计算公式 MsgBox 半径为 & r & 圆面积是: & square 以对话框形式显示结果End Sub8.5.3 分支结构1. 单分支结构单分支结构有两种格式。格式:(1) 单行结构的格式 If 条件表达式 Then 语句块(2) 块结构的格式 If 条件表达式 Then语句块 End If功能:若条件值为 True,则执行 Then 后面的语句组,否则执行本语句的下一个语句。其执行过程如图所示。8.5.3 分支结构例:设计“判断正数”窗体,判断一个数是否是正数。设计窗体界面如图所示。文本框为text1,两个命令按钮分别

33、为command1和command2。command1(“判断”)按钮的事件代码如下:Private Sub Command1_Click()Dim a As Singlea = Text1.ValueIf a 0 Then MsgBox a & 是正数End Sub8.5.3 分支结构2. 双分支结构格式:If Then Else End If功能:若为真时,执行,之后转向执行End If 后的语句;若条件表达式为假时,则执行Else语句后的。 8.5.3 分支结构例:编写一个窗体“计算运费”,用于计算顺丰快递的运费。顺丰快递的收费规定是:重量小于等于1公斤时,收费22元。超过1公斤时,超出

34、部分按每公斤8元收费。要求根据输入的任何重量,计算出相应的运费。窗体的界面如图所示。两个文本框分别为text1和text2,命令按钮分别为command1(计算)和command2(退出)。command1(“计算”)按钮的事件代码如下:Private Sub Command1_Click()Dim zl As SingleDim yf As Singlezl = Text1.ValueIf z1 1 Thenyf = 22Elseyf = (zl - 1) * 8 + 22End IfText2.Value = yfEnd Sub8.5.3 分支结构例:使用窗体的计时器触发事件Timer,在

35、窗体的标签上实现自动计秒功能(从0开始)。在窗体打开时开始计秒,单击其上按钮,则停止计秒,再单击按钮,继续计秒。按钮(command1)单击事件代码如下:Private Sub Command1_Click()If Me.TimerInterval = 0 Then Me.TimerInterval = 1000 Label1.Caption = 0 Command1.Caption = 停止Else Me.TimerInterval = 0 Command1.Caption = 开始End IfEnd Sub窗体打开事件(Open)代码如下:Private Sub Form_Open(Can

36、cel As Integer)Label1.Caption = 0Me.TimerInterval = 0Command1.Caption = 开始End Sub窗体计时器触发(Timer)事件代码如下:Private Sub Form_Timer()Label1.Caption = Label1.Caption + 1End Sub8.5.3 分支结构3. 多分支结构格式:If Then ElseIf Then ElseIf Then Else End If功能:若为真,则执行,之后转向执行End if 后的语句;否则,再判断,为真时,执行,依次类推,当所有的条件都不满足时,执行。8.5.3

37、 分支结构例:设计一个窗体“成绩评定”,设计窗口如图8-33所示。在文本框(text1)中输入学生的成绩,当成绩=90分时,输出“优秀”;当成绩大于等于80且小于90时,输出“良好”,当成绩大于等于60且小于80时,输出“合格”,当成绩小于60时,输出“不合格”。单击“评定”按钮,输出评定结果,输出评定的结果用msgbox()消息框输出。Command1(评定)的事件代码如下:Dim result As Integerresult = Text1.Value If result =90 Then MsgBox 优秀 ElseIf result = 80 Then MsgBox 良好 ElseI

38、f result=60 Then MsgBox 合格Else MsgBox 不合格 End If8.5.3 分支结构4. Select Case语句格式:Select Case Case Case Case ElseEnd Select功能:首先计算条件表达式的值,然后将表达式的值依次与各Case后列表中的值一一进行比较,若与其中某个值相同,则执行该列表后的相应语句块部分,然后执行End Select其后的语句;若出现与表列中的所有值均不相等的情况,则执行Case Else的语句块部分,然后退出Select Case结构,执行其后的语句,否则不执行任何结构内的语句,整个Select Case结

39、构结束,再执行其后的语句。8.5.3 分支结构4. Select Case语句说明:(1) 表达式可以是数值表达式或字符串表达式。(2) 表达式列表可以有如下3种格式:值1, 值2:此种格式在表达式列表中有一个或多个值与表达式的值进行比较,多个取值之间用逗号分隔。如果表达式的值与这些值中的一个相等,即可执行此表达式列表后相应的语句块。值1 To 值2:此种格式在表达式列表中提供了一个取值范围,可以将此范围内的所有取值与表达式的值进行比较。如果表达式的值与此范围内的某个值相等,则可执行此表达式列表后的相应语句块。Is 关系运算符值1, 值2:此种格式将表达式的值与关系运算符后的值进行关系比较,检

40、验是否满足该关系运算符。若满足,则执行此表达式列表后的相应语句块。8.5.3 分支结构例:设计一个窗体“成绩评定”,设计窗口如图8-33所示。在文本框(text1)中输入学生的成绩,当成绩=90分时,输出“优秀”;当成绩大于等于80且小于90时,输出“良好”,当成绩大于等于60且小于80时,输出“合格”,当成绩小于60时,输出“不合格”。单击“评定”按钮,输出评定结果,输出评定的结果用msgbox()消息框输出。Command1(评定)的事件代码如下:Private Sub Command1_Click() Dim result As Integerresult = Text1.ValueSe

41、lect Case result Case Is = 90 MsgBox 优秀 Case Is = 80 MsgBox 良好 Case Is = 60 MsgBox 合格 Case Else MsgBox 不合格End SelectEnd Sub8.5.4 循环结构 在解决一些实际问题时,往往需要重复某些相同的操作,即对某一语句或语句序列执行多次,解决这类问题要用到循环结构。VBA提供了多种循环结构语句。1. ForNext循环语句格式:For 循环变量=初值 To 终值 Step 步长循环体 条件语句序列 Exit For结束条件语句序列 Next 循环变量功能: ForNext循环语句能够

42、重复执行程序代码区域特定次数。8.5.4 循环结构执行步骤:(1) 循环变量取初值;(2) 循环变量与终值比较,确定循环是否进行:步长0时,若循环变量值终值,循环结束,退出循环。步长=0时,若循环变量值终值,一次也不执行循环。步长=终值,循环继续,执行步骤;若循环变量值终值,循环结束,退出循环。执行循环体。循环变量值增加步长(循环变量=循环变量+步长),程序跳转至步骤(2)。8.5.4 循环结构例:设计一个窗体“求累加和”,实现给定初值和终值后,计算出它们之间数累加的和,运行结果如图(1) 设计视图内设计窗体控件,两个文本框分别为text1和text2,命令按钮为command1。(2) 命令按钮的command1事件代码如下:Priv

温馨提示

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

评论

0/150

提交评论