编程工具- POWERPOINT.ppt_第1页
编程工具- POWERPOINT.ppt_第2页
编程工具- POWERPOINT.ppt_第3页
编程工具- POWERPOINT.ppt_第4页
编程工具- POWERPOINT.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

第第7 7章章 编程工具编程工具 本章导读本章导读 通过宏与窗体的结合能够建立简单的数据库管理通过宏与窗体的结合能够建立简单的数据库管理 系统,但真正要开发一个应用型的信息系统,应用系统,但真正要开发一个应用型的信息系统,应用 AccessAccess的编程工具的编程工具VBAVBA编写适当的程序还是必不可编写适当的程序还是必不可 少的。少的。 本章介绍应用本章介绍应用VBAVBA编写应用程序的方法,内容包括:编写应用程序的方法,内容包括: l l 模块对象模块对象 l l VBA VBA程序设计基础程序设计基础 l l VBA VBA结构控制语句结构控制语句 l l 常用事件程序的设计常用事件程序的设计 l l 简单的字段存取方法简单的字段存取方法 l l 模块的错误处理模块的错误处理 第第7 7章章 编程工具编程工具 7.1 7.1 模块对象模块对象 VBAVBA模块在以下的几个方面更具有优势:模块在以下的几个方面更具有优势: 1 1使用模块可以使数据库的维护更加简单。使用模块可以使数据库的维护更加简单。 2 2可以创建自己的函数,用来执行复杂的计算或复杂的操作可以创建自己的函数,用来执行复杂的计算或复杂的操作 。 3 3利用模块可以操作数据库中任何对象,包括数据库本身。利用模块可以操作数据库中任何对象,包括数据库本身。 4 4进行系统级别的操作。例如查看操作系统中的文件、与基进行系统级别的操作。例如查看操作系统中的文件、与基 于于WindowsWindows的应用程序通信、调用的应用程序通信、调用WindowsWindows动态链接库中的函动态链接库中的函 数等。数等。 5 5动态的使用参数。宏中的参数一旦设定,在运行时不能动态的使用参数。宏中的参数一旦设定,在运行时不能 更改;而使用模块,在程序运行可以将参数传递成代码或者更改;而使用模块,在程序运行可以将参数传递成代码或者 使用变量参数,因此模块更具灵活性。使用变量参数,因此模块更具灵活性。 第第7 7章章 编程工具编程工具 7. 1. 1 7. 1. 1 模块与过程模块与过程 对于编辑特定任务的小程序,我们将其命名为过程,通过对于编辑特定任务的小程序,我们将其命名为过程,通过 调用这个过程来调用该程序。调用这个过程来调用该程序。 模块有两种基本类型:类模块和标准模块。无论是类模块还是模块有两种基本类型:类模块和标准模块。无论是类模块还是 标准模块都有以下三个部分组成标准模块都有以下三个部分组成, ,如图如图7-17-1所示所示。 第第7 7章章 编程工具编程工具 1. 1. 声明部分声明部分 用户可以在这部分定义变量、常量、用户自定义类型和用户可以在这部分定义变量、常量、用户自定义类型和 外部过程。在模块中,声明部分与过程部分是分割开来的。外部过程。在模块中,声明部分与过程部分是分割开来的。 用户在声明部分中设定的常量和变量是全局的,声明部分中用户在声明部分中设定的常量和变量是全局的,声明部分中 的内容可以被模块中的所有过程调用。的内容可以被模块中的所有过程调用。 2. 2. 事件过程部分事件过程部分 事件过程是附加在窗体和控件上的,当发生某个事件时候事件过程是附加在窗体和控件上的,当发生某个事件时候 ,对该事件做出的响应。,对该事件做出的响应。 3. 3. 通用过程部分通用过程部分 有时,多个不同的事件可能使用同样的代码,为此,可有时,多个不同的事件可能使用同样的代码,为此,可 以将这段代码独立出来。编写一个过程,这种过程通常称为以将这段代码独立出来。编写一个过程,这种过程通常称为 通用过程。它独立于事件过程之外可供其他过程调用。通用通用过程。它独立于事件过程之外可供其他过程调用。通用 过程必须在事件过程的语句中被调用才会执行。过程必须在事件过程的语句中被调用才会执行。 第第7 7章章 编程工具编程工具 7. 1. 2 7. 1. 2 事件驱动程序设计事件驱动程序设计 鼠标操作鼠标操作 用户动作用户动作鼠标事件鼠标事件 点击鼠标左键一次点击鼠标左键一次单击单击 快速连续点击鼠标左键两次快速连续点击鼠标左键两次双击双击 当鼠标指针在一个对象上,用户当鼠标指针在一个对象上,用户 移动鼠标指针。移动鼠标指针。 鼠标移动鼠标移动 按下鼠标按钮按下鼠标按钮鼠标按下鼠标按下 释放鼠标按钮释放鼠标按钮鼠标释放鼠标释放 第第7 7章章 编程工具编程工具 编写事件驱动程序的方法:编写事件驱动程序的方法: (1)(1) 从窗体设计视图中查看控件的属性列从窗体设计视图中查看控件的属性列 表中的事件选项卡。选中特定的事件,单击表中的事件选项卡。选中特定的事件,单击 “”按钮。在选择生成器中选择代码生成按钮。在选择生成器中选择代码生成 器,如图器,如图7-27-2所示所示 (2 2)此时打开窗体的模块视图,如图)此时打开窗体的模块视图,如图7-17-1所示所示 。图中左上为对象组合框,可以通过它选择。图中左上为对象组合框,可以通过它选择 想要的对象。右上是过程组合框,通过它可想要的对象。右上是过程组合框,通过它可 以选择事件。在模块视图的代码编辑区域可以选择事件。在模块视图的代码编辑区域可 以编写事件驱动的代码以编写事件驱动的代码 第第7 7章章 编程工具编程工具 7. 1. 3 VBA7. 1. 3 VBA的的Sub Sub 过程和过程和FunctionFunction函数函数 1 1定义定义Sub Sub 过程和函数的方法过程和函数的方法 (1 1)首先,打开一个新的模块。)首先,打开一个新的模块。 打开一个新的标准模块。可在打开一个新的标准模块。可在“数据库数据库”窗口中单击窗口中单击“对对 象象”下的下的“模块模块”,然后单击,然后单击“数据库数据库”窗口工具栏上的窗口工具栏上的“ 新建新建”。 打开一个已有的标准模块,可单击打开一个已有的标准模块,可单击“对象对象”下的下的“模块模块” ,选择要打开的模块,然后单击,选择要打开的模块,然后单击“设计设计”。 要打开一个窗体模块或报表模块,可在要打开一个窗体模块或报表模块,可在“设计设计”视图中打视图中打 开窗体或报表,然后在工具栏上单击开窗体或报表,然后在工具栏上单击“代码代码”。 要打开一个与窗体或报表无关的新的类模块,可在要打开一个与窗体或报表无关的新的类模块,可在“数数 据库据库”窗口中的窗口中的“插入插入”菜单上单击菜单上单击“类模块类模块”。要打开一。要打开一 个已有的类模块,可在个已有的类模块,可在“数据库数据库”窗口中单击窗口中单击“模块模块”,选,选 择要打开的模块,然后单击择要打开的模块,然后单击“数据库数据库”窗口工具栏上的窗口工具栏上的“设设 计计”。 第第7 7章章 编程工具编程工具 (2 2)键入)键入 Sub Sub 语句声明过程,或语句声明过程,或FunctionFunction语句声明函语句声明函 数。数。 (3 3)键入过程名称或函数名称,后面跟着括号以及过程)键入过程名称或函数名称,后面跟着括号以及过程 参数。参数。 (4 4)添加)添加 Visual Basic Visual Basic 代码,以便执行所需的操作。代码,以便执行所需的操作。 也可以在模块视图下,选择也可以在模块视图下,选择“插入插入”菜单中菜单中“过程过程”, AccessAccess显示插入过程对话框,如图显示插入过程对话框,如图7-37-3所示,输入名称所示,输入名称 ,选择类型和范围,选择,选择类型和范围,选择“确定确定”。然后添加。然后添加 Visual Visual Basic Basic 代码。代码。 【例例1 1】建立窗体建立窗体1 1,在窗体,在窗体1 1中添加一个标题为中添加一个标题为“求阶乘求阶乘 ”的按钮,当单击此按钮时,出现对话框,要求输入的按钮,当单击此按钮时,出现对话框,要求输入 求阶乘的数,然后将经过计算所得的值显示在一个消求阶乘的数,然后将经过计算所得的值显示在一个消 息框中。息框中。 第第7 7章章 编程工具编程工具 2 2Sub Sub 过程和过程和FunctionFunction函数的格式函数的格式 VBAVBA的的Sub Sub 过程和过程和FunctionFunction函数各自具有特定的格式。函数各自具有特定的格式。 Public | Private Sub 过程名称(参数1 as 数据类型,参数2 as 数 据类型) 语句块1 Exit Sub End Sub Public | Private Function函数名称(参数1 as 数据类型,参数2 as 数据类型)as 数据类型 语句块1 Exit Function 函数名=函数将要返回的值 语句块1 End Function 语句块语句块2 2 第第7 7章章 编程工具编程工具 3 3函数和过程名的命名规则函数和过程名的命名规则 l l 名称长度少于名称长度少于4040个字符,在同一模块中,同个字符,在同一模块中,同 一名不能既做一名不能既做Sub Sub 过程又做过程又做FunctionFunction过程名过程名 。 l l 名称以字母开头名称以字母开头 l l 名称只能包括字母、数字和下划线字符,不名称只能包括字母、数字和下划线字符,不 允许有标点符号和空格允许有标点符号和空格 l l 名称不能是保留字。名称不能是保留字。 第第7 7章章 编程工具编程工具 4 4调用调用 (1)Sub (1)Sub 过程调用的方法,分别是:过程调用的方法,分别是: l l Call Call 过程名过程名( (参数列表参数列表 ) ) l l Sub Sub 参数列表参数列表 当用当用CallCall调用是其过程名后必须加括号,若有调用是其过程名后必须加括号,若有 参数,参数应放在括号中。若以省掉参数,参数应放在括号中。若以省掉CallCall的的 方式调用,不需加括号。方式调用,不需加括号。 (2)Function(2)Function函数调用的方法是:函数调用的方法是: l l Value=Value=过程名过程名( (参数列表参数列表 ) ) 例如:例如:result=factorial(nresult=factorial(n) 第第7 7章章 编程工具编程工具 7.2 VBA7.2 VBA程序设计基础程序设计基础 7.2.1 7.2.1 数据类型数据类型 在在 Visual Visual BasicBasic环境下进行计算时,常环境下进行计算时,常 常需要临时存储数据。像大多数编程语言那常需要临时存储数据。像大多数编程语言那 样,样,Visual Visual BasicBasic使用变量来存储值。变量使用变量来存储值。变量 有名字和数据类型。变量的数据类型决定了有名字和数据类型。变量的数据类型决定了 如何将这些值存储到计算机的内存中。在声如何将这些值存储到计算机的内存中。在声 明变量时也可指定它的数据类型,所有变量明变量时也可指定它的数据类型,所有变量 都具有数据类型,以决定能够存储哪种数据都具有数据类型,以决定能够存储哪种数据 类型。用户可以定义各种数据类型。类型。用户可以定义各种数据类型。 第第7 7章章 编程工具编程工具 7. 2. 2 7. 2. 2 变量变量 像大多数编程语言那样,像大多数编程语言那样,Visual Visual BasicBasic使用变量使用变量 来存储值。变量是一个命名的存储位置,用来保存来存储值。变量是一个命名的存储位置,用来保存 在程序运行期间可修改的数据。在程序运行期间可修改的数据。 1 1声明变量声明变量 每一个变量都必须在其使用的过程中事先声明。每一个变量都必须在其使用的过程中事先声明。 每一变量在其范围内中都有惟一标识符。变量的数据每一变量在其范围内中都有惟一标识符。变量的数据 类型可以指定,也可以不指定。变量在用户使用期类型可以指定,也可以不指定。变量在用户使用期 间,间,Visual Visual BasicBasic就会在内存中建立一个区域,以就会在内存中建立一个区域,以 便保存相应的信息。便保存相应的信息。 声明一个变量用声明一个变量用DimDim语句,它的语法格式如下:语句,它的语法格式如下: DimDim变量名变量名 AsAs数据类型数据类型 第第7 7章章 编程工具编程工具 例如例如 : Sub Test() Dim intValue As Integer intValue=1+1 EndSub 这是一个名为Test()的过程。 在过程中,声明了一个名为intValue的整 形变量, 并给变量赋值为1+1。 注意:注意:Dim通知编译器,将成为变量的名称,As对 变量指定数据类型。 第第7 7章章 编程工具编程工具 2 2变量的命名原则变量的命名原则 在在VBAVBA的代码中,过程、变量及常量的名称有如下规的代码中,过程、变量及常量的名称有如下规 定:定: (l l)最长只能有)最长只能有255255个字符。个字符。 (2 2)必须用字母开头。)必须用字母开头。 (3 3)可以包含字母、数字或下划线字符)可以包含字母、数字或下划线字符“”。 (4 4)不能包含标点符号或空格。)不能包含标点符号或空格。 (5 5)不能是)不能是Visual Visual BasicBasic关键字。关键字是那些在关键字。关键字是那些在 Visual Visual BasicBasic中用作语法的一部分的词,包括预定中用作语法的一部分的词,包括预定 义语句(如义语句(如IfIf和和LoopLoop)、函数(如)、函数(如LenLen和和AbsAbs)和运)和运 算符(如算符(如OrOr和和Mod Mod )等等。)等等。 第第7 7章章 编程工具编程工具 3 3变量的作用范围变量的作用范围 变量的范围确定了能够使用该变量的那部变量的范围确定了能够使用该变量的那部 分代码。一旦超出了作用范围,就不能引用分代码。一旦超出了作用范围,就不能引用 它的内容。变量的作用范围是在模块中声明它的内容。变量的作用范围是在模块中声明 确定的。声明变量时可以使用四种不同的作确定的。声明变量时可以使用四种不同的作 用范围:用范围:PublicPublic、PrivatePrivate、StaticStatic和和DimDim。 另外,一个变量在划定范围时被看作是另外,一个变量在划定范围时被看作是 过程级(局部)变量,还是模块级变量,取过程级(局部)变量,还是模块级变量,取 决于声明该变量时采用的方式。用户不能在决于声明该变量时采用的方式。用户不能在 过程中声明公用变量,而在模块中声明的变过程中声明公用变量,而在模块中声明的变 量可用于所有模块。量可用于所有模块。 第第7 7章章 编程工具编程工具 (1)(1)过程内部使用的变量过程内部使用的变量 过程级变量只有在声明它们的过程中才能被识别,也称它过程级变量只有在声明它们的过程中才能被识别,也称它 们为局部变量。用们为局部变量。用DimDim或者或者StaticStatic关键字来声明它们。例如关键字来声明它们。例如 : Dim intValue As IntegerDim intValue As Integer 或或 Static intValue As IntegerStatic intValue As Integer 在整个应用程序运行时,用在整个应用程序运行时,用StaticStatic声明的局部变量中的值一直声明的局部变量中的值一直 存在,而用存在,而用DimDim声明的变量只在过程执行期间才存在。声明的变量只在过程执行期间才存在。 (2 2)模块内部使用的变量)模块内部使用的变量 模块级变量对该模块的所有过程都可用,但对其他模块的模块级变量对该模块的所有过程都可用,但对其他模块的 代码不可用。可在模块顶部的声明段用代码不可用。可在模块顶部的声明段用PrivatePrivate关键字声明关键字声明 变量,从而建立模块级变量。变量,从而建立模块级变量。 例如;例如; Private intValue As IntegerPrivate intValue As Integer 第第7 7章章 编程工具编程工具 在模块级,在模块级,PrivatePrivate和和DimDim之间没有什么区之间没有什么区 别,但别,但PrivatePrivate更好些,因为很容易把它和更好些,因为很容易把它和 PublicPublic区别开来,使代码更容易理解。区别开来,使代码更容易理解。 (3 3)所有模块使用的变量)所有模块使用的变量 为了使模块级的变量在其他模块也有效,为了使模块级的变量在其他模块也有效, 可用可用PublicPublic关键字声明变量。公用变量中的关键字声明变量。公用变量中的 值可用于应用程序的所有过程。和所有模块值可用于应用程序的所有过程。和所有模块 级变量一样,也在模块顶部的声明来声明公级变量一样,也在模块顶部的声明来声明公 用变量。用变量。 例如:例如:Public intValue As IntegerPublic intValue As Integer 第第7 7章章 编程工具编程工具 7. 2. 3 7. 2. 3 常量常量 定义常量时,可以在模块或过程的通用定义常量时,可以在模块或过程的通用 声明部分定义,例如:声明部分定义,例如: Const dblPi as double=3.14 Sub times_pi() Dim dblValue=5 DblValue=dblValue* dblPi MsgBox dblValue End Sub 在通用声明部分定义常量dblPi为双 精度型,值为3 .14。 times_pi()过程 声明变量dblValue,并赋初始值为5 。 计算变量dblValue和常量dblPi的乘 积,并将结果赋值给dblValue。 在对话框中显示dblValue的值。 第第7 7章章 编程工具编程工具 在在AccessAccess中,支持中,支持3 3种类型的常量:符号常量、固有常量和系种类型的常量:符号常量、固有常量和系 统定义常量。统定义常量。 1 1符号常量符号常量 符号常量可以用符号常量可以用ConstConst语句创建,并且可在模块中使用。语句创建,并且可在模块中使用。 常量与变量一样也有常量与变量一样也有3 3个范围级别:过程级别、私有模块个范围级别:过程级别、私有模块 级别和公共模块级别。级别和公共模块级别。 在声明常量的同时,也设定了它的范围。用户可以使用在声明常量的同时,也设定了它的范围。用户可以使用 ConstConst语句定义常量,语法结构如下:语句定义常量,语法结构如下: 作用范围作用范围 Const Const 常量名常量名 As As 数据类型数据类型 表达式表达式 例如:例如:Public Const dblPi as double=3.14Public Const dblPi as double=3.14 如果用户在定义常量时不加如果用户在定义常量时不加PublicPublic或或PrivatePrivate,则默认为,则默认为 私有。私有。 第第7 7章章 编程工具编程工具 2 2内部常量内部常量 内部常量是内部常量是AccessAccess或或VBAVBA的一部分,内部常量是的一部分,内部常量是 在在AccessAccess或或VBAVBA的类型库中定义的。的类型库中定义的。AccessAccess或或VBAVBA包包 含了许多预定义的内部常量。所有的内部常量都包含了许多预定义的内部常量。所有的内部常量都包 含在类型库中,只有在模块中引用了常量,被引用含在类型库中,只有在模块中引用了常量,被引用 的常量才会装到内存中。要查看这些常量可以使用的常量才会装到内存中。要查看这些常量可以使用 AccessAccess中的对象浏览器。中的对象浏览器。 3 3系统定义常量系统定义常量 系统定义常量包括系统定义常量包括3 3个:个: TrueTrue、FalseFalse和和NullNull。 用户可以在用户可以在 AccessAccess中的任何地方使用系统定义的中的任何地方使用系统定义的 常量。常量。 第第7 7章章 编程工具编程工具 7. 2. 4 7. 2. 4 对象运算表达式与对象运算符对象运算表达式与对象运算符 1 1对象运算表达式对象运算表达式 在在Visual Visual BasicBasic中有各种对象,包括窗体、控件、报表中有各种对象,包括窗体、控件、报表 等。窗体上的控件,如命令按钮、文本框等都是对象。一个等。窗体上的控件,如命令按钮、文本框等都是对象。一个 数据库可以看作是一个对象,并含有其他对象,如字段和索数据库可以看作是一个对象,并含有其他对象,如字段和索 引。用户在编程时只需简单地修改这些对象的属性,并书写引。用户在编程时只需简单地修改这些对象的属性,并书写 简单的事件代码即可完成任务。简单的事件代码即可完成任务。 (1 1)属性)属性 设置属性值是为了改变对象的外观和特性。属性设置的一设置属性值是为了改变对象的外观和特性。属性设置的一 般格式如下:般格式如下: 对象对象. .属性表达式属性表达式 例:设置命令按钮例:设置命令按钮Command1Command1的标题为的标题为“确定确定”,只要修改命,只要修改命 令按钮的令按钮的“Caption”Caption”属性即可,代码为:属性即可,代码为:Command1. Command1. Caption =“Caption =“确定确定” 第第7 7章章 编程工具编程工具 (2 2)方法)方法 和属性一样,方法也是对象的一部分,它是要执和属性一样,方法也是对象的一部分,它是要执 行的操作。方法通常在代码中使用,其格式如下:行的操作。方法通常在代码中使用,其格式如下: 对象对象. .方法方法 例如:使用例如:使用 Print Print 方法在方法在“调试调试”窗口的窗口的“立即立即” 窗口中显示变量窗口中显示变量 MyVar MyVar 的值。的值。 Dim MyVarDim MyVar MyVar = “Come see me in the Immediate pane.”MyVar = “Come see me in the Immediate pane.” Debug.Print MyVarDebug.Print MyVar 在这个例子中,出现了在这个例子中,出现了“”这个符号,这就这个符号,这就 是对象运算符。是对象运算符。 第第7 7章章 编程工具编程工具 2 2对象运算符对象运算符 对象运算表达式中使用!和两种运算符,使用对象运算对象运算表达式中使用!和两种运算符,使用对象运算 符指示随后将出现的项目类型。符指示随后将出现的项目类型。 (1 1)!运算符)!运算符 !运算符的作用是指随后用户定义的内容。!运算符的作用是指随后用户定义的内容。 1 1) 使用!运算符可以引用一个已经打开的窗体、报表或使用!运算符可以引用一个已经打开的窗体、报表或 其上的控件。其上的控件。 例如:例如: 标识符标识符 引用的内容引用的内容 FormsForms! 订单订单 已经打开的已经打开的“订单订单”窗体窗体 ReportsReports! 发货单发货单 已经打开的已经打开的“发货单发货单”报表报表 FormsForms! 订单订单 ! 订单订单ID ID 已经打开的已经打开的“订单订单”窗体上窗体上 的的 “ “订单订单ID”ID”控件控件 第第7 7章章 编程工具编程工具 2 2)在表达式中引用对象)在表达式中引用对象 在表达式中可以使用标识符来引用一个在表达式中可以使用标识符来引用一个 对象或对象的属性。例如,可以引用一个已对象或对象的属性。例如,可以引用一个已 经打开的的报表的经打开的的报表的Visible Visible 属性:属性:ReportsReports! 学生档案学生档案 ! 学号学号 Visible Visible , 学生档案学生档案 引用引用“报表报表”集合中的集合中的“学生档案学生档案”报表,报表, 学号学号 引用引用“学生档案学生档案”报表上的报表上的“学号学号” 控件。控件。 第第7 7章章 编程工具编程工具 (2 2)(点)运算符)(点)运算符 (点)运算符通常指出随后为(点)运算符通常指出随后为AccessAccess定义的内定义的内 容。例如,使用容。例如,使用 运算符可引用窗体、报运算符可引用窗体、报 表或控件等对象的属性。表或控件等对象的属性。 例如:将标签例如:将标签0 0的颜色设置为红色的代码为:的颜色设置为红色的代码为: 标签标签0.color=2.250.color=2.25; 注意:注意:属性也可以在程序设计阶段在属性也可以在程序设计阶段在“属性属性 ”窗口中设置。也可以使用运算符来引用窗口中设置。也可以使用运算符来引用 SQLSQL语句中的字段值、语句中的字段值、VBAVBA方法或集合。方法或集合。 第第7 7章章 编程工具编程工具 7. 2. 5 VBA7. 2. 5 VBA的基本输入输出语句的基本输入输出语句 1 1产生消息框的语句产生消息框的语句 消息框通常用来显示一些提示性的消息,用户在消息框通常用来显示一些提示性的消息,用户在 对话框中对问题选择确定或取消等操作。在对话框中对问题选择确定或取消等操作。在VBAVBA中中 ,用,用MsgBoxMsgBox语句产生消息框。语句产生消息框。 语句格式:语句格式:MsgBox MsgBox Message Message ,button button , titletitle 函数格式:函数格式:MsgBox(Message MsgBox(Message ,button button , title) title) 功能:在对话框中显示消息,等待用户单击按钮,并功能:在对话框中显示消息,等待用户单击按钮,并 返回一个整型数据告诉系统用户单击哪一个按钮。返回一个整型数据告诉系统用户单击哪一个按钮。 第第7 7章章 编程工具编程工具 说明:说明: (1 1)提示信息()提示信息(MessageMessage)参数是必选项,代)参数是必选项,代 表消息框中将要显示的消息。表消息框中将要显示的消息。 (2 2)按钮()按钮(ButtonsButtons)参数是可选项,用来指)参数是可选项,用来指 定将要显示在消息框中的命令按钮的类型。定将要显示在消息框中的命令按钮的类型。 (3 3)标题()标题(titletitle)参数是可选项,代表消)参数是可选项,代表消 息框窗体的标题条所显示的内容息框窗体的标题条所显示的内容 第第7 7章章 编程工具编程工具 2 2产生输入框的语句产生输入框的语句 若要接受用户的输入则可以用输入窗口若要接受用户的输入则可以用输入窗口InputBox InputBox 函数实现。函数实现。 语句格式:语句格式:InputBox InputBox 提示信息提示信息 ,标题标题 ,缺省值缺省值 ,x x坐标,坐标,y y坐标坐标 函数格式:函数格式:InputBox (InputBox (提示信息提示信息,标题标题) 功能:在一对话框来中显示提示信息,等待用户输功能:在一对话框来中显示提示信息,等待用户输 入或按下按钮,并返回用户输入的字符型数据。入或按下按钮,并返回用户输入的字符型数据。 【例例2 2】以下在以下在 Access Access 中使用中使用InputBox InputBox 函数输入函数输入 ,并用,并用MsgBox MsgBox 函数显示消息。函数显示消息。 步骤:步骤: 第第7 7章章 编程工具编程工具 7.3 VBA7.3 VBA结构控制语句结构控制语句 计算机程序的执行控制流程,有三种基计算机程序的执行控制流程,有三种基 本结构:顺序结构、分支结构、循环结构。本结构:顺序结构、分支结构、循环结构。 在面向过程的程序设计中,程序不论从宏观在面向过程的程序设计中,程序不论从宏观 到微观,都是由这三种结构组成。面向对象到微观,都是由这三种结构组成。面向对象 程序设计增加了事件驱动机制,由用户触发程序设计增加了事件驱动机制,由用户触发 某事件去执行相应的事件处理过程。这些事某事件去执行相应的事件处理过程。这些事 件处理过程之间并不形成特定的执行次序,件处理过程之间并不形成特定的执行次序, 但对每一个事件处理过程内部而言,又包含但对每一个事件处理过程内部而言,又包含 这三种基本结构。下面就分别讨论这三种结这三种基本结构。下面就分别讨论这三种结 构。构。 第第7 7章章 编程工具编程工具 7. 3. 1 7. 3. 1 顺序结构语句顺序结构语句 简单的程序大多为顺序结构,整个程序按书写简单的程序大多为顺序结构,整个程序按书写 顺序依次执行。顺序依次执行。 【例例3 3】计算圆的面积。计算圆的面积。 步骤:步骤: 第第7 7章章 编程工具编程工具 7. 3. 2 7. 3. 2 分支结构语句分支结构语句 VBAVBA提供了如下几种分支语句:提供了如下几种分支语句: 1 1简单分支语句(简单分支语句(If IfThenThen语句)语句) IfIf结构测试指定的条件,如果条件为结构测试指定的条件,如果条件为 真(真(TrueTrue),则执行),则执行ThenThen后面的语后面的语 句。句。 语法格式语法格式1 1: If If 条件表达式条件表达式Then Then 语句语句 语法格式语法格式2 2: If If 条件表达式条件表达式 Then Then 语句块语句块 End IfEnd If 条件表达式 语句块 结 束 开 始 真 假 流程图如图所示:流程图如图所示: 第第7 7章章 编程工具编程工具 注意:注意:IfThenIfThen的单行格式不用的单行格式不用End End IfIf语句。语句。 但如果条件表达式的值为真(但如果条件表达式的值为真(TrueTrue)时要执)时要执 行多行代码,则必须使用多行行多行代码,则必须使用多行IfThenEnd IfThenEnd IfIf语法。语法。 【例例4 4】编写一段程序对于输入的学生分数进编写一段程序对于输入的学生分数进 行判断,如果在行判断,如果在6060分以上,则定为分以上,则定为“及格及格” 。 第第7 7章章 编程工具编程工具 2 2选择分支语句(选择分支语句( If IfThenThenElseElse) IfThenIfThen语句的变形是语句的变形是 IfThenElseIfThenElse语句,它在条语句,它在条 件为件为TrueTrue时,执行一段语句,时,执行一段语句, 而在条件为而在条件为FalseFalse时,执行另时,执行另 一段语句。一段语句。IfThenElseIfThenElse语语 句的语法如下:句的语法如下: IfIf条件表达式条件表达式 ThenThen 语句块语句块1 1 ElseElse 语句块语句块2 2 End If End If 开开 始始 结结 束束 语句块语句块1 1语句块语句块2 2 条件表达条件表达 式式 真真假假 流程图如图流程图如图7-77-7所示所示 : 第第7 7章章 编程工具编程工具 【例例5 5】如果学生的分数在如果学生的分数在6060分以上,定为分以上,定为“及格及格”, , 否则定为否则定为“不及格不及格”。 Sub stumark1Sub stumark1()() Dim Mark As IntegerDim Mark As Integer Mark = Val(InputBox(“Mark = Val(InputBox(“请输入学生成绩请输入学生成绩“)“) If Mark = 60 ThenIf Mark = 60 Then MsgBox (“ MsgBox (“及格及格“)“) ElseElse MsgBox (“ MsgBox (“不及格不及格“)“) End IfEnd If End subEnd sub 第第7 7章章 编程工具编程工具 3 3多重选择分支语句(多重选择分支语句(If IfThenThenElse IfElse If语句)语句) 语法格式:语法格式: If If 条件表达式条件表达式1 Then1 Then 语句块语句块1 1 ElseIf ElseIf 条件表达式条件表达式2 Then2 Then 语句块语句块22 ElseIf ElseIf 条件表达式条件表达式n Thenn Then 语句块语句块nn Else Else 语句块语句块 End If End If 第第7 7章章 编程工具编程工具 功能:首先判断条件表达式功能:首先判断条件表达式1 1,若表达式值为真,则,若表达式值为真,则 执行语句块执行语句块1 1(执行完毕转到(执行完毕转到End End IfIf之后),若为之后),若为 假,则继续判断条件表达式假,则继续判断条件表达式2 2,若为真,则执行语,若为真,则执行语 句块句块2 2(执行完毕转到(执行完毕转到End End IfIf之后),否则继续判之后),否则继续判 断下一个条件表达式。如此下去,若找到某一个条断下一个条件表达式。如此下去,若找到某一个条 件表达式的值为真,则执行该表达式下面的语句,件表达式的值为真,则执行该表达式下面的语句, 若前面的表达式均不成立,则检查有无若前面的表达式均不成立,则检查有无ElseElse语句,语句, 若有,则无条件执行若有,则无条件执行ElseElse语句之后的语句块,若无语句之后的语句块,若无 ,则什么都不执行,程序直接跳转到,则什么都不执行,程序直接跳转到End IfEnd If之后。之后。 【例例6 6】将学生的百分制成绩转为等级制,将学生的百分制成绩转为等级制,9090分以上分以上 的为优秀,的为优秀,80808989的为良,的为良,60607979的为及格,的为及格,6060分分 以下的为不及格。以下的为不及格。 第第7 7章章 编程工具编程工具 4 4多重分支语句多重分支语句(Select Case (Select Case 语句语句) ) Select CaseSelect Case测试表达式测试表达式 CaseCase表达式列表表达式列表1 1 语句块语句块1 1 CaseCase表达式列表表达式列表2 2 语句块语句块22 CaseCase表达式列表表达式列表n n 语句块语句块nn Case ElseCase Else 语句块语句块 End SelectEnd Select 第第7 7章章 编程工具编程工具 如果不止一个如果不止一个CaseCase与测试表达式相匹配,与测试表达式相匹配, 则执行第一个相匹配的则执行第一个相匹配的CaseCase下的语句块。如下的语句块。如 果在表达式列表中没有一个值与测试表达式果在表达式列表中没有一个值与测试表达式 相匹配,则相匹配,则VBAVBA执行执行Case Case ElseElse子句(此项是子句(此项是 可选的)中的语句。可选的)中的语句。 说明:测试表达式可以式数值型或字符型的表说明:测试表达式可以式数值型或字符型的表 达式,通常为一个数值型或字符型的变量。达式,通常为一个数值型或字符型的变量。 表达式列表是一个或几个值的列表。如果在表达式列表是一个或几个值的列表。如果在 一个列表中有多个值,就用逗号把值隔开。一个列表中有多个值,就用逗号把值隔开。 第第7 7章章 编程工具编程工具 表达式列表的形式有三种:表达式列表的形式有三种: Case Case 表达式表达式 例如例如Case Case 1010,1515。作用是判断测试表达式的值是否为。作用是判断测试表达式的值是否为1010或或1515 。 Case Case 表达式表达式 To To 表达式。表达式。 例如例如 Case Case 10 10 To To 1515。作用是判断测试表达式的值是否在。作用是判断测试表达式的值是否在1010 至至1515之间。之间。 Case Is Case Is 比较运算符比较运算符 表达式表达式 例如例如 Case Case Is Is Do While|Until 语句块语句块11 Exit DoExit Do 语句块语句块22 LoopLoop 第第7 7章章 编程工具编程工具 功能:当条件表达式功能:当条件表达式conditioncondition值为值为TrueTrue时,时, 进入循环执行语句块的语句。执行完毕,再进入循环执行语句块的语句。执行完毕,再 次判断循环条件表达式的值是否为次判断循环条件表达式的值是否为TrueTrue,若,若 值为值为TrueTrue则再次进入循环执行语句块,如此则再次进入循环执行语句块,如此 循环往复,直到条件表达式的值为循环往复,直到条件表达式的值为FalseFalse。当。当 值为值为FalseFalse时跳过循环体,直接执行时跳过循环体,直接执行Loop Loop 后后 面的语句。如果在执行循环体的过程中遇到面的语句。如果在执行循环体的过程中遇到 Exit Exit DoDo语句,则直接跳出循环,执行语句,则直接跳出循环,执行Loop Loop 后面的语句。后面的语句。 【例例1010】求求阶阶阶阶乘乘 n*(n-1)*1n*(n-1)*1 第第7 7章章 编程工具编程工具 【例例1111】显示随机数。在对话框中输入显示随机数。在对话框中输入“Y”Y” 或者或者“N”N”,当输入,当输入“Y”Y”时,显示一个随机时,显示一个随机 数字,当输入数字,当输入“N”N”时,显示一个不显示随机时,显示一个不显示随机 数的信息,其他字符不接受。数的信息,其他字符不接受。 第第7 7章章 编程工具编程工具 通过上面几个例子,可以总结出循环结构的特点,循环结构通通过上面几个例子,可以总结出循环结构的特点,循环结构通 常包括常包括4 4个部分:个部分: 以求阶乘例为例。以求阶乘例为例。 l l 循环的初始部分。在这部分设置循环控制的初值。例如循环的初始部分。在这部分设置循环控制的初值。例如n n = = InputBox(“InputBox(“请输入整数请输入整数n n:“)“)。初值满足循环条件才能够进。初值满足循环条件才能够进 入循环。入循环。 l l 循环控制部分。循环控制部分。 决定程序是否可以进入循环,保证循环体决定程序是否可以进入循环,保证循环体 中的语句按照规定的循环次数执行。例如中的语句按照规定的循环次数执行。例如Do Do While While n n = = 1 1 。 l l 循环的修改部分。保证循环过程中,有关量能按照一定规循环的修改部分。保证循环过程中,有关量能按照一定规 律变化,并且使得程序终究有可能跳出循环。例如律变化,并且使得程序终究有可能跳出循环。例如n n = = n n 1 1。它使得阶乘计算时。它使得阶乘计算时 循环的工作部分。它完成循环的主要工作,是循环的主体部分循环的工作部分。它完成循环的主要工作,是循环的主体部分 。 第第7 7章章 编程工具编程工具 7.47.4常用事件程序的设计常用事件程序的设计 AccessAccess事件是指操作事件是指操作Access Access 20022002时发生的特时发生的特 定情况,事件程序是指当发生某一事件时,定情况,事件程序是指当发生某一事件时, 所执行的程序内容。充分发挥所执行的程序内容。充分发挥Access Access 20022002的的 事件处理能力,可以设计出更为完善的管理事件处理能力,可以设计出更为完善的管理 系统。系统。 7. 4. 1 Access7. 4. 1 Access的事件的事件 第第7 7章章 编程工具编程工具 7. 4. 2 7. 4. 2 创建应用程序窗体创建应用程序窗体 窗体是系统设计的基本平台,所有的控件都是绘窗体是系统设计的基本平台,所有的控件都是绘 制在窗体上窗体有自己的属性、方法、事件。添加制在窗体上窗体有自己的属性、方法、事件。添加 新的窗体后首先就是要是设置窗体的属性。新的窗体后首先就是要是设置窗体的属性。 1 1窗体编程基本知识窗体编程基本知识 常用的对窗体进行设置的属性如下:常用的对窗体进行设置的属性如下: (1 1) 名称(名称(NameName):用于确定对象的名字):用于确定对象的名字 (2 2) 标题(标题(CaptionCaption):用于返回或设置标题栏中所):用于返回或设置标题栏中所 显示的文本信息显示的文本信息 最大最小化按钮(最大最小化按钮(MinMaxButtonsMinMaxButtons):用于指定在):用于指定在窗窗 体体上上“最大化最大化”或或“最小化最小化”按钮是否可见。值为按钮是否可见。值为 0 0时两者都无,值为时两者都无,值为1 1时只有时只有“最小化最小化”按钮可见,按钮可见, 值为值为2 2时。只有时。只有“最大化最大化”按钮可见。值为按钮可见。值为3 3时,两时,两 者都可见。者都可见。 第第7 7章章 编程工具编程工具 2 2窗体编程应用窗体编程应用 【例例1212】该窗体检测用户输入的用户名和口令该窗体检测用户输入的用户名和口令 。“确认确认”按钮在初始时是不可用的,当用按钮在初始时是不可用的,当用 户名和口令文本框中都输入至少一个字符时户名和口令文本框中都输入至少一个字符时 ,“确认确认”按钮可用。如果输入的用户名和按钮可用。如果输入的用户名和 口令都正确,单击口令都正确,单击“确认确认”,显示,显示“欢迎进欢迎进 入系统入系统”;否则,如果输入的密码或用户名;否则,如果输入的密码或用户名 有误时,要求重新输入。窗体右上角有一个有误时,要求重新输入。窗体右上角有

温馨提示

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

评论

0/150

提交评论