数据库应用课件第九章VBA程序设计

上传人:仙*** 文档编号:241431269 上传时间:2024-06-25 格式:PPT 页数:71 大小:461.50KB
返回 下载 相关 举报
数据库应用课件第九章VBA程序设计_第1页
第1页 / 共71页
数据库应用课件第九章VBA程序设计_第2页
第2页 / 共71页
数据库应用课件第九章VBA程序设计_第3页
第3页 / 共71页
点击查看更多>>
资源描述
教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系第九章第九章 VBA程序设计程序设计 在在数数据据库库的的实实际际应应用用中中,普普通通用用户户一一般般不不会会去去直直接接操操纵纵数数据据库库管管理理系系统统本本身身。这这就就需需开开发发一一套套完完整整的的应应用用软软件件供供用用户户进进行行输输入入、输输出出、查查询询、报报表表打打印印等等操操作作。在在Access中中,要要完完成成复复杂杂条条件件下下的的对对象象操操作作仅仅靠靠控控件件向向导导和和宏宏是是不不够够的的,借借助助VBA则则可可以解决实际开发中的复杂应用。以解决实际开发中的复杂应用。本本章章主主要要介介绍绍VBA语语言言的的基基本本功功能能及及使使用用,另另外外,将将简简单单介介绍绍一一些些用用VBA编编程程方方法法如如何何实实现现对对数数据库的管理与访问。据库的管理与访问。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 9.1 VBA概述概述 VB是是一一种种程程序序设设计计语语言言,VBA则则是是VB的的子子集集,功功能能与与VB相相近近,我我们们可可以以像像编编写写VB程程序序那那样样来来编编写写VBA程程序序。用用VBA语语言言编编写写的的代代码码,将将保保存存在在Access中中的的一一个个模模块块里里,通过启动这个模块,从而实现相应的功能。通过启动这个模块,从而实现相应的功能。Access中包含的程序模块可以分为两种类型:中包含的程序模块可以分为两种类型:(1)绑定型程序模块绑定型程序模块 如:窗体模块、报表模块如:窗体模块、报表模块 (2)独立程序模块独立程序模块 独立程序模块是指独立程序模块是指Access数据库中的数据库中的“模块模块”对象。这对象。这些模块对象可以在数据库中被任意一个对象所调用。些模块对象可以在数据库中被任意一个对象所调用。如:在此模块中放一些公共变量、函数等。如:在此模块中放一些公共变量、函数等。VBA编程环境:编程环境:.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 模模块块是是将将VBA声声明明和和过过程程作作为为一一个个单单元元进进行行保保存存的的集集合合。模模块块有有两两个个基基本本类类型型:类类模模块块和和标标准准模模块块。模模块块中中的的代代码码以以过过程程的的形形成成加加以以组组织织,每每一一个个过过程程都都可可以以是是一一个个函函数数过过程程(Function过程过程)或一个子过程或一个子过程(Sub过程过程)。在在Access中中,绑绑定定型型程程序序指指的的是是类类模模块块;独独立立程程序序模模块块指的是标准模块。指的是标准模块。模块基础知识:模块基础知识:1.类模块类模块 窗窗体体模模块块和和报报表表模模块块都都是是类类模模块块,而而且且它它们们通通常常都都含含有有事事件件过过程程,该该过过程程用用于于响响应应窗窗体体或或报报表表中中的的事事件件。可可以以使使用用事事件件过过程程来来控控制制窗窗体体和和报报表表的的行行为为,以以及及它它们们对对用用户户操操作作的的响应,例如单击某个命令按钮。响应,例如单击某个命令按钮。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2.标准模块标准模块 标标准准模模块块是是独独立立于于窗窗体体与与报报表表的的模模块块,一一般般用用于于存存放放公公共共过过程程(子子过过程程和和函函数数过过程程),不不与与其其他他任任何何Access对对象象相相关关联联。在在Access 2003系系统统中中,通通过过模模块块对对象象创创建建的的代代码码过过程程就就是是标标准准模模块块。标标准准模模块块中中的的公公共共变变量量和和公公共共过过程程具具有有全全局局性性,其其作作用用范范围围为为整整个应用系统。个应用系统。3.创建模块创建模块 模模块块是是以以过过程程为为单单元元组组成成的的,一一个个模模块块包包含含一一个个声声明明区区域域及及一一个个或或多多个个子子过过程程与与函函数数过过程程,声声明明区区域域用用于于定定义义模模块块中中使使用用的的变变量量等等内内容容。过过程程是是包包含含VBA代代码码的的基基本本单单位位,由由一一系系列列可可以以完完成成某某项项指指定定的的操操作作或或计计算算的的语语句句和和方方法法组组成成,通通常常分分为为:Sub过程(子过程)、过程(子过程)、Function过程(函数)等。过程(函数)等。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 (1)子过程子过程 Sub过过程程(又又称称子子过过程程)以以关关键键词词Sub开开始始,以以End Sub结束,其定义语句语法格式为:结束,其定义语句语法格式为:Public|Private Static Sub 子过程名子过程名()As 数据类型数据类型 Exit Sub End Sub对对于于子子过过程程,可可以以传传送送参参数数和和使使用用参参数数来来调调用用它它,但但不不返返回回任任何何值值。选选用用关关键键字字Public可可使使该该过过程程能能被被所所有有模模块块的的所所有有其其他他过过程程调调用用。选选用用关关键键字字Private可可使使该该过过程程只只能能被被同同一一模块的其他过程调用。模块的其他过程调用。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 (2)函数过程函数过程 函函数数也也是是一一种种过过程程,是是一一种种特特殊殊的的、能能够够返返回回值值的的过过程程。函函数数过过程程以以关关键键字字Function开开始始,以以End Function结结束束,其其定定义语句语法格式为:义语句语法格式为:Public|Private Static Function函函数数过过程程名名()As 数数据类型据类型 函数过程名函数过程名=Exit Function 函数过程名函数过程名=End Function选选用用关关键键字字Static,只只要要含含有有这这个个过过程程的的模模块块是是打打开开的的,则在这个过程中无论是显式或隐式说明的变量值都将被保留。则在这个过程中无论是显式或隐式说明的变量值都将被保留。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 面向对象程序设计概念面向对象程序设计概念:1.对象对象 客客观观世世界界的的任任何何实实体体都都可可以以被被看看作作是是对对象象。Access数数据据库库就就是是由由各各种种对对象象组组成成的的,表表是是对对象象,窗窗体体和和窗窗体体上上的的各各种种控件也是对象。每个对象都具有各自的属性、方法和事件。控件也是对象。每个对象都具有各自的属性、方法和事件。9.2 VBA编程编程(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:以以一一个个字字节节的的无无符符号号二二进进制制数数存存储储,取取值值范范围围为为0255。由于取值范围较小由于取值范围较小,用的不多用的不多 整整数数(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:0023:59:59。例如,例如,#April 10,2008#、#11-11-2011#2008-08-18 10:30:00AM#.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 (4)变体数据类型变体数据类型(Variant)变变体体数数据据类类型型是是一一种种可可变变的的数数据据类类型型,可可以以表表示示任任何何值值,包包括括数数值值、字字符符串串及及日日期期等等。如如果果没没有有事事先先声声明明或或使使用用符符号号(%、!等等)定义变量的数据类型,系统默认为变体类型。定义变量的数据类型,系统默认为变体类型。(5)逻辑数据类型逻辑数据类型(Boolean)也称布尔型。只有也称布尔型。只有True(真真)或或False(假假)两个值。两个值。(6)对象数据类型对象数据类型(Object)对对象象型型数数据据用用来来表表示示图图形形、OLE对对象象或或其其它它对对象象,对对象象变量可引用应用程序中的对象。变量可引用应用程序中的对象。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系2.常量、变量和数组常量、变量和数组(1)常量常量常常量量是是在在程程序序中中可可直直接接引引用用的的实实际际值值,其其值值在在程程序序运运行行过程中不变。在过程中不变。在VBA中,一般有以下中,一般有以下3种常量。种常量。直接常量直接常量实际上就是常数,数据数据的不同决定了常量的不同。实际上就是常数,数据数据的不同决定了常量的不同。例例如如:456、VBA、#2009-8-24#分分别别为为数数值值型型、字字符符型型、日期型常量。日期型常量。符号常量符号常量有有些些常常量量可可以以由由用用户户定定义义的的符符号号常常量量来来表表示示,符符号号常常量量使用使用Const语句来创建。语句来创建。例如:例如:Const conPI=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)。例如:例如:Dim strX As String 声明声明strX为一个字符串变量为一个字符串变量声明声明intX 为整型、为整型、strX为字符串变量为字符串变量Dim intX As Integer,strZ As String Dim x 声明声明x为变体型变量为变体型变量Dim i,j,k As Interger 只只有有k是是Integer类类型型,i和和j都都是是Variant类类型型没没有有使使用用上上述述两两种种方方法法声声明明数数据据类类型型的的变变量量默默认认为为变变体体类型(类型(Variant)。)。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系VBA允允许许用用户户在在编编写写应应用用程程序序时时,不不声声明明变变量量而而直直接接使使用用,系系统统会会临临时时为为新新变变量量分分配配存存储储空空间间并并使使用用,这这就就是是隐隐式式声明。所有隐式声明的变量都是变体数据类型。声明。所有隐式声明的变量都是变体数据类型。例例如如:NewVar=123。该该语语句句定定义义了了一一个个隐隐含含型型变变量量,名字为名字为NewVar,类型为,类型为Variant数据类型,值为数据类型,值为123。在在VBA编编程程中中应应尽尽量量减减少少隐隐含含型型变变量量的的使使用用,大大量量使使用用隐含型变量对调试程序和识别变量等都会带来困难。隐含型变量对调试程序和识别变量等都会带来困难。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系(3)数组数组数数组组是是由由一一组组具具有有相相同同数数据据类类型型的的变变量量(称称为为数数组组元元素素)构构成成的的集集合合。数数组组变变量量由由变变量量名名和和数数组组下下标标组组成成,在在VBA中中不不允允许许隐隐式式说说明明数数组组,可可用用Dim语语句句来来声声明明数数组组。数数组组声声明明格式为:格式为:Dim 数组名数组名(下标下界下标下界 to 下标上界下标上界)As 数据类型数据类型下下标标下下界界的的缺缺省省值值为为0,数数组组元元素素为为:数数组组名名(0)至至 数数组组名名(下标上界下标上界);如果设置下标下界非;如果设置下标下界非0,要使用,要使用to选项。选项。例如:例如:Dim IntArray(10)As Integer这这条条语语句句声声明明了了一一个个有有11个个整整型型数数组组元元素素的的数数组组,数数组组元元素素从从IntArray(0)至至IntArray(10),每每个个数数组组元元素素为为一一个个整整型型变量,这里只指定数组元素下标上界来定义数组。变量,这里只指定数组元素下标上界来定义数组。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系VBA中允许指定数组下标范围时使用中允许指定数组下标范围时使用To,如下例所示:,如下例所示:Dim IntArray1(-2 to 3)As Integer该该语语句句定定义义一一个个有有6个个整整型型数数组组元元素素的的数数组组,数数组组元元素素下下标从标从-2到到3。如果定义多维数组,声明方式为:如果定义多维数组,声明方式为:Dim 数数组组名名(数数组组第第1维维下下标标上上界界,数数组组第第2维维下下标标上上界界)As 数据类型数据类型Dim IntArray2(3,5)As Integer该该语语句句定定义义了了一一个个二二维维数数组组,第第一一维维有有4个个元元素素,第第二二维维有有6个元素。个元素。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系VBA中允许指定数组下标范围时使用中允许指定数组下标范围时使用To,如下例所示:,如下例所示:Dim IntArray1(-2 to 3)As Integer该该语语句句定定义义一一个个有有6个个整整型型数数组组元元素素的的数数组组,数数组组元元素素下下标从标从-2到到3。如果定义多维数组,声明方式为:如果定义多维数组,声明方式为:Dim 数数组组名名(数数组组第第1维维下下标标上上界界,数数组组第第2维维下下标标上上界界)As 数据类型数据类型Dim IntArray2(3,5)As Integer该该语语句句定定义义了了一一个个二二维维数数组组,第第一一维维有有4个个元元素素,第第二二维维有有6个元素。个元素。数数组组中中的的每每个个元元素素都都可可以以当当作作单单个个的的变变量量来来使使用用,引用格式为:数组名引用格式为:数组名(下标值下标值)例如:例如:IntArray2(2,4)=8.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系运算符与表达式及函数:运算符与表达式及函数:1.运算符运算符VBA中中的的运运算算符符可可分分为为:算算术术运运算算符符、字字符符串串运运算算符符、关系运算符和逻辑运算符。关系运算符和逻辑运算符。(1)算术运算符算术运算符算算术术运运算算符符用用来来执执行行简简单单的的算算术术运运算算。VBA提提供供了了8个个算术运算符。算术运算符。运运算算优优先先级级指指的的是是当当表表达达式式中中含含有有多多个个运运算算符符时时,各各运运算符执行的优先顺序。算符执行的优先顺序。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系运算符含义优先级实例结果指数运算127(1/3)3-取负运算2-ia-3*乘法运算3ia*ia*ia27/除法运算310/ia3.33333333333333整除运算410ia3Mod取模运算510 Mod ia1+加法运算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 关系运算符应用关系运算符应用Dim S 定义变量定义变量SS=(52)结果为结果为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 逻辑运算符应用逻辑运算符应用Dim V 定义变量定义变量VV=(52 And 3=4)结果为结果为FalseV=(52 Or 3=4)结果为结果为TrueV=(abcdabc And 3=4)结果为结果为FalseV=Not(3=4)结果为结果为TrueABNot AA And BA Or BTTFTTTFFFTFTTFTFFTFF.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系(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提提供供了了近近百百个个内内置置的的标标准准函函数数,在在设设计计数数据据库库时时可可以直接引用这些函数。以直接引用这些函数。函数的使用形式为:函数的使用形式为:函数名函数名(,参数参数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)产生随机数产生随机数Rnd01之间的数之间的数(1)数学函数数学函数数学函数与数学中的定义一致,完成数学计算功能。数学函数与数学中的定义一致,完成数学计算功能。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系(2)转换函数转换函数转换函数主要实现数据类型的转换。转换函数主要实现数据类型的转换。函数函数函数说明函数说明应用实例应用实例返回结果返回结果Asc(C)返回字符串首字符的返回字符串首字符的ASCII值值Asc(abcd)97Chr(N)ASCII值转换为字符串值转换为字符串Chr(97)aUcase(C)将字符串中的小写字母转换为大写字母将字符串中的小写字母转换为大写字母Lcase(ABcd)ABCDLcase(C)将字符串中的大写字母转换为小写字母将字符串中的大写字母转换为小写字母Lcase(ABcd)abcdStr(N)将数值表达式值转换成字符串将数值表达式值转换成字符串Str(-88)-88Val(C)将数字字符串转换成数值型数据将数字字符串转换成数值型数据Val(11 22)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-23 12: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的的取取值值范范围围为为0255之间的整数。之间的整数。例如:例如: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个变量个变量Dim a,ba=数据库应用数据库应用 该变量用于表明课程名称该变量用于表明课程名称b=Access2003 Rem 该变量用于指定课程使用的数据库该变量用于指定课程使用的数据库添添加加到到程程序序中中的的注注释释语语句句,系系统统默默认认以以绿绿色色文文本本显显示示,在在VBA运行代码时,将自动忽略掉注释。运行代码时,将自动忽略掉注释。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系2.声明语句声明语句例如,如下程序段:例如,如下程序段:Private Sub Proc()Dim S as Single,T as Single Const PI=3.14 End Sub上上述述语语句句声声明明定定义义了了一一个个名名为为Proc的的局局部部子子过过程程,Dim语语句句定定义义了了2个个名名称称分分别别为为S和和T的的单单精精度度变变量量,Const语语句句定定义义了了一一个个名名为为PI的的符符号号常常量量。当当这这个个子子过过程程被被调调用用或或运运行行时,所有包含在时,所有包含在Sub和和End Sub之间的语句都会被执行。之间的语句都会被执行。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.赋值语句赋值语句赋赋值值语语句句用用于于指指定定一一个个值值或或表表达达式式给给变变量量或或常常量量。使使用用格式为:变量名格式为:变量名=值或表达式值或表达式例如:例如:Dim S as Single,T as SingleS=1.23T=5.678N%=123 N值为值为123N%=1b234 出错,类型不匹配出错,类型不匹配注注意意:赋赋值值号号左左边边只只能能是是变变量量语语句句,不不能能是是常常量量、常常量量符号或表达式。下面均为错误的赋值语句:符号或表达式。下面均为错误的赋值语句:x+y=3 左边是表达式左边是表达式5=sin(x)左边是常量左边是常量.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系程序基本结构程序基本结构:语语句句的的执执行行方方式式按按流流程程可可以以分分为为顺顺序序结结构构、选选择择结结构构和和循环结构三种。循环结构三种。1.顺序结构顺序结构顺顺序序结结构构是是在在程程序序执执行行时时,根根据据程程序序中中语语句句的的书书写写顺顺序序依次执行的语句序列。依次执行的语句序列。2.选择结构选择结构选选择择结结构构是是在在程程序序执执行行时时,根根据据不不同同的的条条件件选选择择执执行行不不同的程序语句,用来解决有选择和转移的诸多问题。同的程序语句,用来解决有选择和转移的诸多问题。.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系例例:窗窗体体上上有有一一个个命命令令按按钮钮Command1,在在其其Click事事件件过过程程编编写写代代码码。根根据据输输入入的的半半径径计计算算球球体体的的表表面面积积。要要求求用用InputBox函数输入半径值,用函数输入半径值,用MsgBox函数显示计算结果。函数显示计算结果。Private Sub Command1_Click()Dim r As Single,area As SingleConst PI=3.1415r=Val(InputBox(输入半径输入半径,数据输入数据输入)area=4*3.14*r 2MsgBox 球体表面积球体表面积=&areaEnd Sub.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系(1)If语句语句If语语句句又又称称为为分分支支语语句句,它它有有单单路路分分支支和和双双路路分分支支两两种种形式。形式。单路分支单路分支单路分支的语句格式如下:单路分支的语句格式如下:格式一:格式一:If Then End If格式二:格式二:If Then T TF F表达式成立表达式成立?语句块语句块.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系例例:窗窗体体上上有有一一个个命命令令按按钮钮Command1,在在其其Click事事件件过过程程编编写写代代码码。设设口口令令。用用If语语句句来来判判断断输输入入密密码码的的正正确确性性。要要求求用用InputBox函函数数输输入入密密码码值值,用用MsgBox函函数数显显示示判判断断结结果。果。Private Sub Command1_Click()Dim a As Single,b As Single a=123456 b=Val(InputBox(输入你的密码输入你的密码:)If a=b Then MsgBox 密码正确密码正确!End IfEnd Sub.教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 双路分支双路分支双路分支的语句格式如下:双路分支的语句格式
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!