第8章Access的编程工具VBA课件.ppt

上传人(卖家):晟晟文业 文档编号:5105235 上传时间:2023-02-11 格式:PPT 页数:191 大小:2.12MB
下载 相关 举报
第8章Access的编程工具VBA课件.ppt_第1页
第1页 / 共191页
第8章Access的编程工具VBA课件.ppt_第2页
第2页 / 共191页
第8章Access的编程工具VBA课件.ppt_第3页
第3页 / 共191页
第8章Access的编程工具VBA课件.ppt_第4页
第4页 / 共191页
第8章Access的编程工具VBA课件.ppt_第5页
第5页 / 共191页
点击查看更多>>
资源描述

1、宏毕竟功能有限。和宏相比,宏毕竟功能有限。和宏相比,VBA编程除了可以编程除了可以实现更复杂的功能外,还有使数据库易于维护的特点。实现更复杂的功能外,还有使数据库易于维护的特点。VBA程序设计概述程序设计概述 8.1VBA编程基础编程基础 8.2VBA程序流程控制程序流程控制 8.3 VBA数组数组 8.4 VBA模块的创建模块的创建 8.5 VBA程序的调试程序的调试 8.6 VBA的数据库编程的数据库编程 8.78.1.1 VBA编程环境编程环境8.1.2 面向对象程序设计的概念面向对象程序设计的概念BASICBeginners All-purpose Symbolic Instructi

2、on Code初学者万用符号指令代码初学者万用符号指令代码 Visual BasicWindows环境下的应用程序开发工具,它是可视化的、面向对象环境下的应用程序开发工具,它是可视化的、面向对象的、采用事件驱动方式的高级程序设计语言的、采用事件驱动方式的高级程序设计语言VBA是是Microsoft Office内置的编程语言,是根据内置的编程语言,是根据Visual Basic简简化的宏语言,其基本语法、词法与化的宏语言,其基本语法、词法与Visual Basic基本相同,因而基本相同,因而具有简单、易学的特点。具有简单、易学的特点。与与Visual Basic不同的是,不同的是,VBA不是一

3、个独立的开发工具,不是一个独立的开发工具,一般被嵌入到像一般被嵌入到像Word、Excel、Access这样的宿主软件中,与这样的宿主软件中,与其配套使用,从而实现在其中的程序开发功能。其配套使用,从而实现在其中的程序开发功能。在在Office中使用的中使用的VBA开发界面被称为开发界面被称为VBE(Visual Basic Editor),它具有编辑、调试和编译),它具有编辑、调试和编译Visual Basic程程序的功能序的功能 从从Access数据库窗口切换到数据库窗口切换到VBE环境:环境:n 在数据库窗口新建或打开一个模块对象在数据库窗口新建或打开一个模块对象n 选择选择“工具工具”

4、“”“宏宏”“”“Visual BasicVisual Basic编辑器编辑器”命命令令n 使用标准工具栏上的使用标准工具栏上的“代码代码”按钮按钮另外,也可以在设计窗体、报表时转到另外,也可以在设计窗体、报表时转到VBE环境环境 代码窗口立即窗口工程资源管理器属性窗口标准工具栏 1工具栏包括标准、编辑、调试和用户窗体工具栏包括标准、编辑、调试和用户窗体工具栏 2工程资源管理器窗口列出当前应用程序中的所有窗体、报表和列出当前应用程序中的所有窗体、报表和VBA程序程序模块模块3代码窗口显示、编辑模块中的程序代码显示、编辑模块中的程序代码 4属性窗口列出所选对象控件的各种属性列出所选对象控件的各种

5、属性 4属性窗口列出所选对象控件的各种属性列出所选对象控件的各种属性可以在可以在AccessAccess数据库环境的属性窗口设置对象的各数据库环境的属性窗口设置对象的各种属性值,也可以在种属性值,也可以在VBEVBE环境的属性窗口设置对象的环境的属性窗口设置对象的各种属性值。各种属性值。5立即窗口用来在调试程序的过程中给变量临时赋值或输出变用来在调试程序的过程中给变量临时赋值或输出变量或表达式的值。在量或表达式的值。在VBA中,通常使用中,通常使用Debug对象对象的的Print方法进行输出。方法进行输出。VBA采用了面向对象的程序设计方法。采用了面向对象的程序设计方法。本质:基于问题的自底向

6、上的功能综合。n 方法:方法:自底向上自底向上。n 面向对象的程序设计从面向对象的程序设计从内部结构内部结构上模拟客观世界,其上模拟客观世界,其开发过程是从开发过程是从“用什么做用什么做”到到“要做什么要做什么”。面向对象的程序设计:OOPOOP的基石是_和_。消息:要求某个对象执行类中某个操作的规格说明。方法:对象所能执行的操作。面向对象的基本机制是_和_。对象类方法消息封装性继承性多态性封装性说明包含和隐藏对象信息的能力。n 封装使操作对象的内部复杂性与应用程序的其封装使操作对象的内部复杂性与应用程序的其它部分隔离开来,使用户不必了解数据的存储它部分隔离开来,使用户不必了解数据的存储方法及

7、实现的代码。方法及实现的代码。n 封装性提高了程序的可靠性和数据的安全性。封装性提高了程序的可靠性和数据的安全性。继承性是指子类具有父类的属性和方法。n 继承性说明了子类延用父类特征的能力,体现继承性说明了子类延用父类特征的能力,体现并扩充了面向对象程序设计方法的并扩充了面向对象程序设计方法的共享机制共享机制。继承性是程序可重用性的关键。多态性是指一些关联的类,虽然都可包含同名的方法程序,但方法程序的具体内容可以是各不相同的。运行时,系统将根据对象的类确定执行哪种方法程序。多态性使得相同的操作可以作用于多种类型的对象并获得不同的结果,从而增强了系统的灵活性、维护性、扩充性等。OOP方法以_为中

8、心进行分析与设计。尽量逼真地模拟客观世界及其事物。再现人类思维方式和解决问题的工作方式。OOP方法的优点:更利于大型软件开发。对象类类是面向对象程序设计中的核心。所谓类是指:具有相同的结构、操作,并遵守相同的规则的对象的模板。对象u对象是类的一个实例对象是类的一个实例 类定义了对象特征以及对象外观和行为的模板,它刻划了一组具有共同特性的对象。类是静态概念,对象是动态概念。u对象是类的一个实例,包括了数据和过程(操对象是类的一个实例,包括了数据和过程(操作)。作)。每个对象都具有属性,以及与之相关的事件和方法,通过对象的属性、事件和方法来处理对象。属性是定义对象的特征或某一方面的行为。所创建的对

9、象的属性由对象所基于的类决定,也可以为对象定义新的属性。属性一般用数据来表示(如按钮的大小、标题、位置等),对象的某些属性值既可以在设计阶段,也能在运行阶段进行设置,某些属性则是不能被设置的,是只读的。用户可以给对象增加新的属性。事件是由对象识别的一个动作,可以编写相应的代码对事件是由对象识别的一个动作,可以编写相应的代码对此动作进行响应。此动作进行响应。通常事件是由一个用户动作产生(如鼠标单击事件通常事件是由一个用户动作产生(如鼠标单击事件Click),也可以由程序代码或系统产生(计时器的),也可以由程序代码或系统产生(计时器的Timer事件)。事件)。不同的对象所能识别的事件虽然有所不同,

10、但事件集不同的对象所能识别的事件虽然有所不同,但事件集合是固定的,用户不能创建新的事件。合是固定的,用户不能创建新的事件。方法是对象能够执行的一个操作。方法是对象能够执行的一个操作。方法是与对象相关联的过程(完成某种操作的处理代方法是与对象相关联的过程(完成某种操作的处理代码),通常也称作方法程序,它与对象紧密地连接在一起。码),通常也称作方法程序,它与对象紧密地连接在一起。方法也可以由用户自己创建,因此其集合是可以无限地扩展方法也可以由用户自己创建,因此其集合是可以无限地扩展的。的。事件可以具有与之相关联的方法程序(如为事件可以具有与之相关联的方法程序(如为ClickClick事件事件编写的

11、编写的ClickClick程序代码)。程序代码)。1对象对象对象:对象:在采用面向对象程序设计方法的程序中,程序处在采用面向对象程序设计方法的程序中,程序处理的目标被抽象成了一个个对象,每个对象具有各自的理的目标被抽象成了一个个对象,每个对象具有各自的属性、方法和事件。属性、方法和事件。Access有几十个对象,其中包括对象和对象集合。有几十个对象,其中包括对象和对象集合。所有对象和对象集合按层次结构组织,处在最上层的是所有对象和对象集合按层次结构组织,处在最上层的是Application对象,即对象,即Access应用程序,其他对象或对象应用程序,其他对象或对象集合都处在它的下层或更下层。集

12、合都处在它的下层或更下层。对 象 名 称说 明Application应用程序,即AccessDebug该对象可在调试阶段用Print方法在立即窗口输出信息Forms所有处于打开状态的窗体构成的集合Reports所有处于打开状态的报表构成的集合Screen屏幕对象Docmd使用该对象可从Visual Basic中运行Access操作AccessAccess程序中的常用对象程序中的常用对象对象的特征用属性和方法描述。对象的特征用属性和方法描述。属性:属性:用来表示对象的状态,如窗体的用来表示对象的状态,如窗体的Name(名称)(名称)属性、属性、Caption(标题)属性等。(标题)属性等。方法:

13、方法:用来描述对象的行为,如窗体有用来描述对象的行为,如窗体有Refresh方法,方法,Debug对象有对象有Print方法等。方法等。引用对象的属性或方法时应该在属性名或方法名前引用对象的属性或方法时应该在属性名或方法名前加对象名,并用对象引用符加对象名,并用对象引用符“”连接连接Me!text1.value=春江水暖鸭先知春江水暖鸭先知Debug.print 你好!你好!2属性和方法属性和方法事件:事件:是对象可以识别的动作,通常由系统预先定义是对象可以识别的动作,通常由系统预先定义事件过程:事件过程:对象在识别了所发生的事件后执行的程序对象在识别了所发生的事件后执行的程序 例如,下面的事

14、件过程描述了单击按钮之后所发生例如,下面的事件过程描述了单击按钮之后所发生的动作。的动作。Private Sub Command1_Click()Me!text1.value=首都经济贸易大学首都经济贸易大学“Debug.print 你好!你好!End Sub3事件和事件过程事件和事件过程 1.1.数据类型数据类型 2.2.常量常量3.3.变量变量4.4.函数函数5.5.表达式表达式VBA的数据类型共有的数据类型共有13种。每种数据类型的数据种。每种数据类型的数据在存储时所占的存储空间和处理时能够进行的运算都在存储时所占的存储空间和处理时能够进行的运算都不相同。不相同。数数 据据 类类 型型字

15、字 节节范范 围围Byte(字节型)(字节型)10255Boolean(布尔型)(布尔型)2True或或FalseInteger(整型)(整型)232 768+32 767Long(长整型)(长整型)42 147 483 6482 147 483 647Single(单精度型)(单精度型)4负数:负数:3.40282310381.40129810-45正数:正数:1.40129810-453.4028231038Double(双精度型)(双精度型)8负数:负数:1.79769313486232E308 4.94065645841247E324正数:正数:4.94065645841247E324

16、 1.79769313486232E308Decimal(小数型)(小数型)12与小数点右边的数字个数有关与小数点右边的数字个数有关VBA的数据类型的数据类型 数数 据据 类类 型型 字字 节节范范 围围Currency(货币(货币型)型)8922 337 203 685 447.5808922 337 203 685 447.5807Date(日期型)(日期型)8100年年1月月1日日9999年年12月月31日日String(字符型)(字符型)与字符串的与字符串的字长有关字长有关定长:定长:165400 变长:变长:020亿亿Object(对象型)(对象型)4任何对象引用任何对象引用Vari

17、ant(变体型)(变体型)与具体数据与具体数据类型有关类型有关每个元素数据类型的范围每个元素数据类型的范围自定义型自定义型各元素所需各元素所需字节之和字节之和VBAVBA的数据类型的数据类型 续表续表常量就是其值在程序运行期间不变的量。常量又分常量就是其值在程序运行期间不变的量。常量又分 n字面常量字面常量n符号常量符号常量n固有常量固有常量 1 1字面常量字面常量字面常量是常量按照其实际数值表示。字面常量是常量按照其实际数值表示。(1 1)各种数字型常量。如)各种数字型常量。如123123、0.0050.005,也可以用指数形,也可以用指数形式,如式,如1250.01250.0可写成可写成1

18、.25E+31.25E+3。(2 2)字符型常量。如)字符型常量。如VisualVisual、北京北京。(3 3)日期型常量。按)日期型常量。按8 8字节的浮点数来存储。字节的浮点数来存储。如如#2007-1-1#2007-1-1#、#1/1/2007#1/1/2007#,#2002-5-4 14:30:00 PM#2002-5-4 14:30:00 PM#。(4 4)布尔型常量:只有两个值)布尔型常量:只有两个值TrueTrue或或FalseFalse。2符号常量符号常量如果程序中多处用到某个常量,将其定义成符号常量如果程序中多处用到某个常量,将其定义成符号常量可增加代码的可读性,也便于维护

19、。可增加代码的可读性,也便于维护。用关键字用关键字Const定义符号常量:定义符号常量:Const PI as single=3.14159263固有常量固有常量(系统预定义系统预定义)这是一类特殊的符号常量,通常已经预先在类库中这是一类特殊的符号常量,通常已经预先在类库中定义好,编程者只要直接使用这些已经定义好的符号常定义好,编程者只要直接使用这些已经定义好的符号常量即可。量即可。例如:例如:VBA类库中,类库中,vbRed代表红色,代表红色,vbBlue代表蓝色。代表蓝色。这里开始的两个字母表示所在的类库这里开始的两个字母表示所在的类库Access类库的常量以类库的常量以ac开始,如开始,

20、如acForm等。等。ADO类库的常量以类库的常量以ad开始,如开始,如adOpenKeyset。变量是其值在程序运行期间变化的量变量是其值在程序运行期间变化的量,程序运程序运行时行时,变量代表的就是内存中的某块临时存储空间变量代表的就是内存中的某块临时存储空间 1变量的命名规则变量的命名规则(1)以字母或汉字开头,后可跟字母、数字或下划线。)以字母或汉字开头,后可跟字母、数字或下划线。(2)变量名最长为)变量名最长为255个字符。个字符。(3)不区分变量名的大小写,不能使用关键字。)不区分变量名的大小写,不能使用关键字。(4)字符之间必须并排书写,不能出现上下标。)字符之间必须并排书写,不能

21、出现上下标。以下是合法的变量名:以下是合法的变量名:a,x,x3,BOOK_1,sum5以下是非法的变量名:以下是非法的变量名:3s s*T -3x bowy-1 if 2变量的声明变量的声明 一般,变量在使用前应该先声明。一般,变量在使用前应该先声明。格式为格式为 Dim 变量名变量名 AS 类型类型例如例如 Dim ab As integer,sum As single如果省略如果省略“AS 类型类型”,则所定义的变量为,则所定义的变量为Variant型。型。VBA允许用户在编写应用程序时,不声明变量而直允许用户在编写应用程序时,不声明变量而直接使用,这就是隐式声明。所有隐式声明的变量都是

22、接使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。数据类型。建议在程序中显式声明变量建议在程序中显式声明变量VBA提供了大量的内置函数,这些函数极大地提供了大量的内置函数,这些函数极大地丰富了丰富了VBA的功能的功能 了解和使用函数了解和使用函数,应从下面三个方面应从下面三个方面:n函数名函数名n参数参数(指参数的个数、顺序和类型指参数的个数、顺序和类型)n函数值函数值按照函数的功能,按照函数的功能,VBAVBA的内置函数可分为的内置函数可分为n数学函数数学函数n字符串函数字符串函数n日期函数日期函数n转换函数转换函数等。具体介绍可见附录等。具体介绍可见附录A A。下面主要

23、介绍专门负责输入输出的函数下面主要介绍专门负责输入输出的函数MsgBox函函数和数和InputBox函数函数1MsgBox函数函数 功能功能:在对话框中显示消息,等待用户单击按钮,并返在对话框中显示消息,等待用户单击按钮,并返回一个回一个Integer型数值,告诉用户单击的是哪一个按钮。型数值,告诉用户单击的是哪一个按钮。格式为格式为 MsgBox(提示(提示,按钮、图标和默认按钮,按钮、图标和默认按钮,标题,标题)例如,下面的程序是某个窗体中单击例如,下面的程序是某个窗体中单击“退出退出”按钮后执按钮后执行的动作。运行时先显示消息框,并将返回的结果赋给行的动作。运行时先显示消息框,并将返回的

24、结果赋给Integer型变量型变量Response。如果单击。如果单击“是是”按钮,则关闭按钮,则关闭当前窗体,否则返回到当前窗体。当前窗体,否则返回到当前窗体。Private Sub cmd退出退出_Click()Dim response As Integer response=MsgBox(真的要退出吗真的要退出吗?,vbYesNoCancel+_ vbQuestion,提示提示)If response=vbYes Then DoCmd.Close End IfEnd Sub内部常量内部常量按钮按钮值值vbOkOnly0vbOkCancel1vbAbortRetryIgnore 2vbYe

25、sNoCancel3vbYesNo4vbRetryCancel5消息框中按钮的类型和图标消息框中按钮的类型和图标内部变量内部变量按钮按钮值值显示显示的图的图标标vbCritical16vbQuestion32vbExclamation48vbInformation642InputBox函数函数 功能功能:在对话框中显示提示信息,等待用户输入正文并在对话框中显示提示信息,等待用户输入正文并按下按钮,返回文本框中输入的内容(按下按钮,返回文本框中输入的内容(String型)。格型)。格式为:式为:InputBox(提示(提示,标题,标题,默认,默认)strName=InputBox(请输入您的姓名

26、请输入您的姓名,输入输入,张三张三)内部变量内部变量返回值返回值按钮按钮vbOk1确定确定vbCancel2取消取消vbAbort3终止终止vbRetry4重试重试vbIgnore5忽略忽略vbYes6是是vbNo7否否MsgBox函数的返回值函数的返回值表达式是将常量、变量、字段名称、控件的属性值表达式是将常量、变量、字段名称、控件的属性值和函数用运算符连接而成的运算式。和函数用运算符连接而成的运算式。VBA中有中有5类运算符,使用这些运算符可以分别构成类运算符,使用这些运算符可以分别构成算术表达式、字符表达式、关系表达式、布尔表达式和对算术表达式、字符表达式、关系表达式、布尔表达式和对象引

27、用表达式。象引用表达式。1算术表达式算术表达式 运运 算算 符符意意 义义示示 例例结结 果果优优 先先 级级()圆括号圆括号8乘方乘方52257*乘乘5*2106/除除5/22.56整除整除5226Mod取模,求两数相取模,求两数相除的余数除的余数5 Mod 216+加加5+275减减5-235当几个算术运算符一起使用时,运算顺序由优先级决定,当几个算术运算符一起使用时,运算顺序由优先级决定,而且使用圆括号可以改变原有的运算顺序而且使用圆括号可以改变原有的运算顺序 2字符串表达式字符串表达式 字符运算符包括字符运算符包括&和和+运算符,作用是连接两个字符串。运算符,作用是连接两个字符串。1.

28、&1.&运算符:用来强制两个表达式作字符串连接。运算符:用来强制两个表达式作字符串连接。例如,字符串表达式:例如,字符串表达式:”中国中国”&“&“北京北京”,运算的结,运算的结果为字符串果为字符串“中国北京中国北京”&运算符两边的操作数可以是字符型,也可以数值型。运算符两边的操作数可以是字符型,也可以数值型。不管是什么类型,进行连接操作前,系统先进行操作数类不管是什么类型,进行连接操作前,系统先进行操作数类型转换,数值型转换成字符型,然后再作连接运算。型转换,数值型转换成字符型,然后再作连接运算。2.+运算符:用来连接两个字符串表达式,形成一个新的运算符:用来连接两个字符串表达式,形成一个新

29、的字符串。字符串。如果两边都是数值表达式时,做普通加法运算;如果两边都是数值表达式时,做普通加法运算;若一个是数字型字符串,另一个为数值型,则系统自若一个是数字型字符串,另一个为数值型,则系统自动将数字型字符串转化为数值,然后进行算术加法运算;动将数字型字符串转化为数值,然后进行算术加法运算;若一个为非数字型字符串,另一个为数值型,则出错。若一个为非数字型字符串,另一个为数值型,则出错。3 3关系表达式关系表达式关系运算符用来实现数据的比较,结果为逻辑值关系运算符用来实现数据的比较,结果为逻辑值TrueTrue或或FalseFalse。关系运算符有。关系运算符有7 7个,它们有相同的优先级个,

30、它们有相同的优先级4 4。运运 算算 符符意意 义义示示 例例结结 果果小于小于52False=小于等于小于等于5大于大于52True=大于等于大于等于5=2True=相等相等5=2False不等不等52TrueLike字符串匹配字符串匹配This Like*isTrue4布尔表达式布尔表达式布尔表达式也叫逻辑表达式,用来实现对逻辑量布尔表达式也叫逻辑表达式,用来实现对逻辑量True和和False的运算的运算 运运 算算 符符意意 义义示示 例例结结 果果 优优 先先 级级Not非,将非,将True变变False或将或将False变变TrueNot TrueFalse3And与,两边都是真,与

31、,两边都是真,结果才为真结果才为真52 And“ab”=“bc”False2Or或,两边有一个为或,两边有一个为真,结果就为真真,结果就为真52 Or“ab”=“abc”True15 5对象引用表达式对象引用表达式对象引用运算符有对象引用运算符有2个:个:“!”和和“”,表达式,表达式的结果为被引用的对象或被引用对象的属性值或方法。的结果为被引用的对象或被引用对象的属性值或方法。运运 算算 符符意意 义义示示 例例示示 例例 说说 明明!引用某个对象,引用某个对象,该对象通常由用该对象通常由用户定义户定义Forms!系统系统登录登录引用引用Forms集集合中的合中的“系统系统登录登录”窗体窗体

32、.引用对象的属性引用对象的属性或方法,该属性或方法,该属性或方法通常由或方法通常由Access定义定义Forms!系统系统登录登录.visible引用引用Forms集集合中的合中的“系统系统登录登录”窗体的窗体的visible属性属性1.1.程序的顺序控制程序的顺序控制 2.2.程序的分支控制程序的分支控制 3.3.程序的循环控制程序的循环控制 程序由语句组成。每个程序语句由关键字、标识符、程序由语句组成。每个程序语句由关键字、标识符、运算符和表达式等组成。每条语句指明了计算机要进行的运算符和表达式等组成。每条语句指明了计算机要进行的具体操作。具体操作。按照语句所执行的功能,按照语句所执行的功

33、能,VBA的程序语句有赋值语句、的程序语句有赋值语句、声明语句、控制语句、注释语句等。声明语句、控制语句、注释语句等。赋值语句是最基本的语句。它的功能是给变量或对象赋值语句是最基本的语句。它的功能是给变量或对象的属性赋值。其格式为的属性赋值。其格式为 或或 例如,例如,Rate=0.1 给变量赋值给变量赋值给控件的属性赋值给控件的属性赋值Me!Text1.Value=欢迎使用欢迎使用ACCESS 赋值语句赋值语句“=”为赋值号,表示赋值的动为赋值号,表示赋值的动作,不要理解为数学上的等号。作,不要理解为数学上的等号。(1)VBA(1)VBA代码中不区分字母的大小写。除汉字外,全部字代码中不区分

34、字母的大小写。除汉字外,全部字符都用半角符号。符都用半角符号。(2)(2)在程序中可适当添加空格和缩进。在程序中可适当添加空格和缩进。(3)(3)一般一行书写一条语句,多条语句写在同一行时用一般一行书写一条语句,多条语句写在同一行时用“;”;”分开,一条语句分多行写时用分开,一条语句分多行写时用1 1个空格加下划线个空格加下划线“_”_”续续行。例如,行。例如,respons=MsgBox(respons=MsgBox(真的要退出吗真的要退出吗?,vbYesNoCancel?,vbYesNoCancel _+vbQuestion,_+vbQuestion,提示提示)(4)(4)应养成及时注释的

35、好习惯。在应养成及时注释的好习惯。在VBAVBA中有两种方法可以中有两种方法可以添加注释,一是在行前用添加注释,一是在行前用remrem关键字开始,二是在行前或行末关键字开始,二是在行前或行末用单引号用单引号“”开始。开始。书写原则书写原则程序的三种基本控制结构是顺序结构、分支结构和程序的三种基本控制结构是顺序结构、分支结构和循环结构循环结构 顺序结构是最简单的一种结构,程序运行时,计算顺序结构是最简单的一种结构,程序运行时,计算机按照语句的排列顺序依次执行程序中的每一条语句。机按照语句的排列顺序依次执行程序中的每一条语句。例:创建如下图所示的窗体例:创建如下图所示的窗体“计算圆的面积和周长计

36、算圆的面积和周长”。要。要求在文本框中输入了圆的半径后,单击求在文本框中输入了圆的半径后,单击“计算计算”按钮,在按钮,在窗体的另外两个文本框中分别输出圆的面积和周长。窗体的另外两个文本框中分别输出圆的面积和周长。本例除了采用第6章介绍的方法制作窗体外,最关键的是编写“计算”按钮的单击事件为按钮添加事件代码的方法是,用鼠标右键单击按钮,在弹出的快捷菜单中选择“事件生成器”命令,在打开的“选择生成器”对话框中选择“代码生成器”选项,转到VBE环境。Private Sub cmd计算计算_Click()定义变量和符号常量定义变量和符号常量Dim r As Single r为圆的半径为圆的半径Dim

37、 s As Single s为圆的面积为圆的面积Dim l As Single l为圆的周长为圆的周长Const PI As Single=3.1415926给变量给变量r赋值赋值r=Me!txt半径半径计算圆的面积和周长计算圆的面积和周长s=PI*r 2l=2*PI*r用文本框输出结果用文本框输出结果Me!txt面积面积=sMe!txt周长周长=lEnd Sub例:使用计时事件例:使用计时事件Timer在一个窗体的一个标签上实现在一个窗体的一个标签上实现自动计数操作。要求:窗体打开时开始计数,单击其上自动计数操作。要求:窗体打开时开始计数,单击其上按钮,则停止计数,再单击一次按钮,计数计数。

38、按钮,则停止计数,再单击一次按钮,计数计数。Dim flag As BooleanPrivate Sub bOK_Click()flag=Not flagEnd SubPrivate Sub Form_Open(Cancel As Integer)flag=TrueEnd SubPrivate Sub Form_Timer()If flag=True Then Me!lBell.Caption=Val(Me!lBell.Caption)+1 End IfEnd Sub分支结构是用条件来控制语句的执行。在分支结构是用条件来控制语句的执行。在VBA中,中,执行分支结构控制的语句有执行分支结构控制的

39、语句有If语句和语句和Select Case语句。语句。1IfThenElse语句语句 语句格式为语句格式为If Then Else End If输入两个数并在立即窗口输出其中输入两个数并在立即窗口输出其中较大的数较大的数Dim x As Integer,y As Integerx=InputBox(请输入请输入x的值的值:)y=InputBox(请输入请输入y的值的值:)If x y Then Debug.Print xElse Debug.Print yEnd If说明:说明:(1 1)可以是任何表达式,一般为关系表可以是任何表达式,一般为关系表达式或布尔表达式。如果是其他表达式,则非达式

40、或布尔表达式。如果是其他表达式,则非0 0认为是认为是TrueTrue,0 0认为是认为是FalseFalse。(2 2)执行时,先判断表达式的值,为)执行时,先判断表达式的值,为TrueTrue则执行语句块则执行语句块1 1,否则执行语句块,否则执行语句块2 2。(3 3)如果语句较短,也可以采用下面的单行形式将整个)如果语句较短,也可以采用下面的单行形式将整个语句写在一行上。语句写在一行上。If x y Then Debug.Print x Else Debug.Print yIf x y Then Debug.Print x Else Debug.Print y(4 4)使用过程中有时没

41、有语句块)使用过程中有时没有语句块2 2,这时,这时IfIf语句变为单语句变为单分支结构。其语句格式为分支结构。其语句格式为If If Then Then 1End IfEnd IfSub procedure1()If Hour(Time()=12 And Hour(Time()18 Then Debug.Print 下午好下午好!Else Debug.Print 欢迎下次光临!欢迎下次光临!End IfEnd Sub例:自定义过程,其功能是:如果当前时间在例:自定义过程,其功能是:如果当前时间在1218点点之间,则在立即窗口显示之间,则在立即窗口显示“下午好!下午好!”,否则显示,否则显示“

42、欢欢迎下次光临!迎下次光临!”。Function f(n As Double)As Double If n=1 Then f=1 Else f=n*f(n-1)End IfEnd Function例:求例:求n阶乘的函数过程阶乘的函数过程例例 用用VBAVBA程序实现窗体程序实现窗体“系统登录系统登录”。本例中对用户名和口令的检验用本例中对用户名和口令的检验用VBAVBA程序代码,程序代码,触发并执行这些代码的条件仍然是单击触发并执行这些代码的条件仍然是单击“确定确定”按钮。按钮。Private Sub cmd确定确定_Click()Dim name As String,password As

43、 String Dim r As Integer 存放存放MsgBox消息框的返回值消息框的返回值 name=Me!txt用户名用户名 pass=Me!txt口令口令 If password=1234 And name=“xuhong Then 如果用户名和口令正确如果用户名和口令正确,显示消息框显示消息框,运行运行学生管理模学生管理模块块窗体窗体 MsgBox“欢迎进入学生管理系统欢迎进入学生管理系统!,vbOKOnly+vbCritical,欢迎欢迎 DoCmd.Close 关闭系统登录窗体关闭系统登录窗体 DoCmd.Opentable“学生学生”打开打开“学生学生”表表 Else Ms

44、gBox 密码错误!密码错误!,vbOKOnly显示消息框显示消息框 Me!txt用户名用户名=使文本框清空使文本框清空 Me!txt口令口令=Me!txt用户名用户名.SetFocus 使文本框获得焦点使文本框获得焦点,准准备重新输入备重新输入 End IfEnd Sub 使用使用DoCmdDoCmd对象的方法,可以从对象的方法,可以从VBAVBA代码中运行多种代码中运行多种AccessAccess操作,如打开和关闭窗体、设置控件值等任务。操作,如打开和关闭窗体、设置控件值等任务。在本例中打开窗体使用了在本例中打开窗体使用了DoCmdDoCmd对象的对象的OpenFormOpenForm方法

45、,方法,关闭窗体使用了关闭窗体使用了DoCmdDoCmd对象的对象的CloseClose方法。方法。2 2IfThenElseIfIfThenElseIf语句语句 语句格式为语句格式为If Then ElseIf Then ElseIf Then Else End If运行时,从表达式运行时,从表达式1 1开始开始逐个测试条件,当找到逐个测试条件,当找到第一个为第一个为TrueTrue的条件时,的条件时,即执行该条件后所对应即执行该条件后所对应的语句块。的语句块。例例:编程根据输入的学生成绩,评定其等级。标准是:编程根据输入的学生成绩,评定其等级。标准是:9090100100分为分为“优秀优秀

46、”,80 80 89 89分为分为“良好良好”,70 70 79 79分为分为“中等中等”,60 60 69 69分为分为“及格及格”,6060分以下分以下“不合格不合格”。为了重点说明程序,本例将程序放在模块中的过程里,并用立即窗口作为输出。操作步骤如下。(1)在数据库设计窗口创建一个新模块,此时系统自动转到VBE环境。选择“插入”“过程”命令,这时出现“添加过程”对话框。在该对话框中为新过程命名“gc1”。Public Sub gc1()Dim x As Integer x=InputBox(请输入成绩请输入成绩:)If x=90 Then Debug.Print 优秀优秀 ElseIf

47、x=80 Then Debug.Print 良好良好 ElseIf x=70 Then Debug.Print 中等中等 ElseIf x=60 Then Debug.Print 及格及格 Else Debug.Print 不及格不及格 End IfEnd Sub3Select Case语句语句 语句格式为语句格式为Select Case Case 语句块语句块1 Case 语句块语句块2 Case Else 语句块语句块n+1End Select说明:说明:(1 1)Select CaseSelect Case后的变量或表达式只能是数值型或后的变量或表达式只能是数值型或字符型表达式。字符型表

48、达式。(2 2)执行过程是先计算)执行过程是先计算Select CaseSelect Case后的变量或表达后的变量或表达式的值,然后从上至下逐个比较,决定执行哪一个语式的值,然后从上至下逐个比较,决定执行哪一个语句块。如果有多个句块。如果有多个CaseCase后的表达式列表与其相匹配,后的表达式列表与其相匹配,则只执行第一个则只执行第一个CaseCase后的语句块。后的语句块。(3 3)语句中的各个表达式列表应与)语句中的各个表达式列表应与Select CaseSelect Case后的后的变量或表达式同类型。各个表达式列表可以采用下面变量或表达式同类型。各个表达式列表可以采用下面的形式的形

49、式 表达式:表达式:a+5a+5 用逗号分隔的一组枚举表达式:用逗号分隔的一组枚举表达式:2,4,6,8 2,4,6,8 表达式表达式1 To 1 To 表达式表达式2 60 to 1002 60 to 100 Is Is 关系运算符表达式关系运算符表达式 Is 60Is y Then If x y Then Else End IfElse End If循环控制结构也叫重复控制结构。特点是程序执循环控制结构也叫重复控制结构。特点是程序执行时,该语句中的一部分操作即循环体被重复执行多次。行时,该语句中的一部分操作即循环体被重复执行多次。在在VBA中,执行循环控制的语句有中,执行循环控制的语句有F

50、or循环语句和循环语句和DoLoop循环语句。循环语句。1 1ForFor循环语句循环语句 语句格式为语句格式为For to Step Exit For Next 说明:说明:(1 1)循环控制变量的类型必须是数值型。)循环控制变量的类型必须是数值型。(2 2)步长可以是正数,也可以是负数。如果步长为)步长可以是正数,也可以是负数。如果步长为1 1,StepStep短语可以省略。短语可以省略。(3 3)根据初值、终值和步长,可以计算出循环的次)根据初值、终值和步长,可以计算出循环的次数,因此数,因此ForFor语句一般用于循环次数已知的情况。语句一般用于循环次数已知的情况。(4 4)使用)使用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第8章Access的编程工具VBA课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|