面向对象程序设计语言-VBA.ppt

上传人:wuy****n92 文档编号:86941655 上传时间:2023-04-15 格式:PPT 页数:51 大小:515.56KB
返回 下载 相关 举报
面向对象程序设计语言-VBA.ppt_第1页
第1页 / 共51页
面向对象程序设计语言-VBA.ppt_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《面向对象程序设计语言-VBA.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计语言-VBA.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第十一章第十一章 面向对象程序设计面向对象程序设计语言语言-VBA-VBA11.1 VBA概述概述 虽然宏很好用,但它运行的速度比较慢,也不虽然宏很好用,但它运行的速度比较慢,也不虽然宏很好用,但它运行的速度比较慢,也不虽然宏很好用,但它运行的速度比较慢,也不能直接运行很多能直接运行很多能直接运行很多能直接运行很多WINDOWSWINDOWSWINDOWSWINDOWS的程序。尤其是不能自定义的程序。尤其是不能自定义的程序。尤其是不能自定义的程序。尤其是不能自定义一些函数,这样当我们要对某些数据进行一些特殊一些函数,这样当我们要对某些数据进行一些特殊一些函数,这样当我们要对某些数据进行一些特殊

2、一些函数,这样当我们要对某些数据进行一些特殊的分析时,它就无能为力了。的分析时,它就无能为力了。的分析时,它就无能为力了。的分析时,它就无能为力了。由于宏具有这些局限性,所以在给数据库设计由于宏具有这些局限性,所以在给数据库设计由于宏具有这些局限性,所以在给数据库设计由于宏具有这些局限性,所以在给数据库设计一些特殊的功能时,需要用到一些特殊的功能时,需要用到一些特殊的功能时,需要用到一些特殊的功能时,需要用到“模块模块模块模块”对象来实现,对象来实现,对象来实现,对象来实现,而这些而这些而这些而这些“模块模块模块模块”都是由一种叫做都是由一种叫做都是由一种叫做都是由一种叫做“VBAVBAVBA

3、VBA”的语言来实的语言来实的语言来实的语言来实现的。使用它编写程序,然后将这些程序编译成拥现的。使用它编写程序,然后将这些程序编译成拥现的。使用它编写程序,然后将这些程序编译成拥现的。使用它编写程序,然后将这些程序编译成拥有特定功能的有特定功能的有特定功能的有特定功能的“模块模块模块模块”,以便在,以便在,以便在,以便在Access2000Access2000Access2000Access2000中调用。中调用。中调用。中调用。VBVBVBVB,就就就就是是是是微微微微软软软软公公公公司司司司推推推推出出出出的的的的可可可可视视视视化化化化BASICBASICBASICBASIC语语语语言

4、言言言,用用用用它它它它来来来来编编编编程程程程非非非非常常常常简简简简单单单单。因因因因为为为为它它它它简简简简单单单单,而而而而且且且且功功功功能能能能强强强强大大大大,所所所所以以以以微微微微软软软软公公公公司司司司将将将将它它它它的的的的一一一一部部部部分分分分代代代代码码码码结结结结合合合合到到到到OFFICEOFFICEOFFICEOFFICE中中中中,形形形形成成成成我我我我们们们们今今今今天天天天所所所所说说说说的的的的VBAVBAVBAVBA。它它它它的的的的很很很很多多多多语语语语法法法法继继继继承承承承了了了了“VBVBVBVB”,所所所所以以以以我我我我们们们们可可可可

5、以以以以像像像像编编编编写写写写VBVBVBVB语语语语言言言言那那那那样样样样来来来来编编编编写写写写VBAVBAVBAVBA程程程程序序序序,以以以以实实实实现现现现某某某某个个个个功功功功能能能能。当当当当这这这这段段段段程程程程序序序序编编编编译译译译通通通通过过过过以以以以后后后后,将将将将这这这这段段段段程程程程序序序序保保保保存存存存在在在在AccessAccessAccessAccess中中中中的的的的一一一一个个个个模模模模块块块块里里里里,并并并并通通通通过过过过类类类类似似似似在在在在窗窗窗窗体体体体中中中中激激激激发发发发宏宏宏宏的的的的操操操操作作作作那那那那样样样样

6、来来来来启启启启动动动动这这这这个个个个“模模模模块块块块”,从而实现相应的功能。,从而实现相应的功能。,从而实现相应的功能。,从而实现相应的功能。“模模模模块块块块”和和和和“宏宏宏宏”的的的的使使使使用用用用是是是是差差差差不不不不多多多多的的的的。其其其其实实实实AccessAccessAccessAccess中中中中的的的的“宏宏宏宏”也也也也可可可可以以以以存存存存成成成成“模模模模块块块块”,这这这这样样样样运运运运行行行行起起起起来来来来的的的的速速速速度度度度还还还还会会会会更更更更快快快快。“宏宏宏宏”的的的的每每每每个个个个基基基基本本本本操操操操作作作作在在在在“VBAV

7、BAVBAVBA”中中中中都都都都有有有有相相相相应应应应的的的的等等等等效效效效语语语语句句句句,使使使使用用用用这这这这些些些些语语语语句句句句就就就就可可可可以以以以实实实实现现现现所所所所有有有有单单单单独独独独“宏宏宏宏”命命命命令令令令,所所所所以以以以“VBAVBAVBAVBA”的的的的功功功功能能能能是是是是非常强大的。非常强大的。非常强大的。非常强大的。需要使用需要使用需要使用需要使用VBAVBAVBAVBA程序代码作为程序代码作为程序代码作为程序代码作为AccessAccessAccessAccess操作指令的一部操作指令的一部操作指令的一部操作指令的一部分的原因:分的原因

8、:分的原因:分的原因:1)1)1)1)建立用户自定义的函数(建立用户自定义的函数(建立用户自定义的函数(建立用户自定义的函数(UDFUDFUDFUDF)代替重复使用的表代替重复使用的表代替重复使用的表代替重复使用的表达式。达式。达式。达式。2)2)2)2)编写包含有比编写包含有比编写包含有比编写包含有比IifIifIifIif()()()()函数更复杂的决策结构的表达函数更复杂的决策结构的表达函数更复杂的决策结构的表达函数更复杂的决策结构的表达式。式。式。式。3)3)3)3)想要执行标准想要执行标准想要执行标准想要执行标准AccessAccessAccessAccess宏不支持的操作,例如:想

9、要宏不支持的操作,例如:想要宏不支持的操作,例如:想要宏不支持的操作,例如:想要进行事务处理。进行事务处理。进行事务处理。进行事务处理。4)4)4)4)想要同时打开两个或两个以上数据库。想要同时打开两个或两个以上数据库。想要同时打开两个或两个以上数据库。想要同时打开两个或两个以上数据库。5)5)5)5)想要提供应用程序源文件复制的功能。想要提供应用程序源文件复制的功能。想要提供应用程序源文件复制的功能。想要提供应用程序源文件复制的功能。11.2 模块、函数及程序模块、函数及程序 既既既既然然然然我我我我们们们们要要要要编编编编写写写写“VBAVBAVBAVBA”程程程程序序序序,就就就就需需需

10、需要要要要先先先先看看看看看看看看“VBAVBAVBAVBA”的的的的开开开开发发发发环环环环境境境境。“VBAVBAVBAVBA”的的的的开开开开发发发发环环环环境境境境是是是是开开开开发发发发“VBAVBAVBAVBA”程程程程序序序序相相相相应应应应的的的的“设设设设计计计计器器器器”,但但但但我我我我们们们们不不不不这这这这么么么么称称称称呼呼呼呼它它它它,而而而而是是是是叫叫叫叫它它它它“VBAVBAVBAVBA开开开开发发发发环环环环境境境境”,这这这这种种种种说说说说法法法法是是是是继继继继承承承承了了了了计算机语言对开发器的一种统一叫法。计算机语言对开发器的一种统一叫法。计算机

11、语言对开发器的一种统一叫法。计算机语言对开发器的一种统一叫法。我我我我们们们们首首首首先先先先要要要要打打打打开开开开一一一一个个个个数数数数据据据据库库库库,然然然然后后后后选选选选定定定定数数数数据据据据库库库库窗窗窗窗口口口口上上上上的的的的“模模模模块块块块”选选选选项项项项,再再再再用用用用鼠鼠鼠鼠标标标标单单单单击击击击数数数数据据据据库库库库窗窗窗窗口口口口上上上上的的的的“新新新新建建建建”按按按按钮钮钮钮,这这这这时时时时就就就就会会会会弹弹弹弹出出出出一一一一个个个个窗窗窗窗口口口口,这这这这就就就就是是是是“VBAVBAVBAVBA”的的的的“开发环境开发环境开发环境开发

12、环境”,如下图所示。,如下图所示。,如下图所示。,如下图所示。VBAVBAVBAVBA开开开开发发发发环环环环境境境境分分分分为为为为“主主主主窗窗窗窗口口口口”、“模模模模块块块块代代代代码码码码”、“工工工工程程程程资资资资源源源源管管管管理理理理器器器器”和和和和“模模模模块块块块属属属属性性性性”这这这这几几几几部部部部分分分分。“模模模模块块块块代代代代码码码码”窗窗窗窗口口口口用用用用来来来来输输输输入入入入“模模模模块块块块”内内内内部部部部的的的的程程程程序序序序代代代代码码码码。“工工工工程程程程资资资资源源源源管管管管理理理理器器器器”用用用用来来来来显显显显示示示示这这这

13、这个个个个数数数数据据据据库库库库中中中中所所所所有有有有的的的的“模模模模块块块块”。当当当当我我我我们们们们用用用用鼠鼠鼠鼠标标标标单单单单击击击击这这这这个个个个窗窗窗窗口口口口内内内内的的的的一一一一个个个个“模模模模块块块块”选选选选项项项项时时时时,就就就就会会会会在在在在模模模模块块块块代代代代码码码码窗窗窗窗口口口口上上上上显显显显示示示示出出出出这这这这个个个个模模模模块块块块的的的的“VBAVBAVBAVBA”程程程程序序序序代代代代码码码码。而而而而“模模模模块块块块属属属属性性性性”窗窗窗窗口口口口上上上上就就就就可可可可以以以以显显显显示示示示当当当当前选定的前选定的

14、前选定的前选定的“模块模块模块模块”所具有的各种属性。所具有的各种属性。所具有的各种属性。所具有的各种属性。模模模模块块块块对对对对象象象象是是是是将将将将Visual Visual Visual Visual Basic Basic Basic Basic for for for for Application(Application(Application(Application(简简简简称称称称宏宏宏宏语语语语言言言言VBA)VBA)VBA)VBA)编编编编写写写写的的的的过过过过程程程程和和和和声声声声明明明明作作作作为为为为一一一一个个个个整整整整体体体体进进进进行行行行保保保保存存

15、存存的的的的过过过过程程程程的的的的集集集集合合合合。一一一一个个个个模模模模块块块块包包包包含含含含一一一一个个个个声声声声明明明明区区区区域域域域,且且且且可可可可以以以以包包包包含含含含一一一一个个个个或或或或多多多多个个个个程程程程序序序序(以以以以subsubsubsub开开开开头头头头)或或或或函函函函数数数数(以以以以FunctionFunctionFunctionFunction开开开开头头头头),模模模模块块块块的的的的声声声声明明明明区区区区域域域域是是是是用用用用来来来来声声声声明明明明模模模模块块块块使使使使用用用用的的的的项项项项目目目目(通通通通常常常常是是是是变量

16、)。变量)。变量)。变量)。程程程程序序序序又又又又称称称称为为为为子子子子程程程程序序序序。程程程程序序序序可可可可以以以以调调调调用用用用其其其其他他他他的的的的程程程程序序序序,此此此此时时时时,被被被被调调调调用用用用的的的的程程程程序序序序叫叫叫叫做做做做子子子子程程程程序序序序(SubProcedureSubProcedureSubProcedureSubProcedure)。程程程程序序序序是由开始与结束的关键字定义的,如:是由开始与结束的关键字定义的,如:是由开始与结束的关键字定义的,如:是由开始与结束的关键字定义的,如:Sub Sub Sub Sub 子程序名(参数子程序名(

17、参数子程序名(参数子程序名(参数 As As As As 数据类型)数据类型)数据类型)数据类型)As As As As 数据类型数据类型数据类型数据类型子程序语句子程序语句子程序语句子程序语句 End SubEnd SubEnd SubEnd Sub 函函函函数数数数是是是是一一一一种种种种可可可可将将将将数数数数值值值值返返返返回回回回到到到到它它它它们们们们的的的的名名名名称称称称的的的的程程程程序序序序。像像像像“sinsinsinsin()”、“abs(abs(abs(abs()”这这这这些些些些都都都都是是是是函函函函数数数数都都都都是是是是内内内内部部部部函函函函数数数数,现现现

18、现在在在在我我我我们们们们要要要要来来来来讲讲讲讲讲讲讲讲外外外外部部部部函函函函数数数数,外外外外部部部部函函函函数数数数和和和和变变变变量量量量一一一一样样样样在在在在使使使使用用用用之之之之前前前前也也也也是是是是要先申明。它们的结构如下图所示。要先申明。它们的结构如下图所示。要先申明。它们的结构如下图所示。要先申明。它们的结构如下图所示。Function Function Function Function 函数名(参数函数名(参数函数名(参数函数名(参数 As As As As 数据类型)数据类型)数据类型)数据类型)As As As As 数据类型数据类型数据类型数据类型 函数语句

19、函数语句函数语句函数语句函数名函数名函数名函数名 End Function End Function End Function End Function 我我我我们们们们可可可可以以以以引引引引用用用用程程程程序序序序名名名名称称称称来来来来调调调调用用用用该该该该程程程程序序序序,但但但但Visual Visual Visual Visual BasicBasicBasicBasic提提提提供供供供了了了了一一一一个个个个关关关关键键键键字字字字CallCallCallCall,可可可可明明明明确确确确地地地地调调调调用用用用一一一一个个个个程程程程序序序序。在程序名前加上在程序名前加上在程

20、序名前加上在程序名前加上CallCallCallCall是一个很好的程序设计习惯。是一个很好的程序设计习惯。是一个很好的程序设计习惯。是一个很好的程序设计习惯。例如:例如:例如:例如:Public Function Public Function GetNumber(a,b,cGetNumber(a,b,c As Integer)As Integer As Integer)As IntegerGetNumberGetNumber=a+b=a+bc c End Function End Function 函函函函 数数数数 则则则则 会会会会 把把把把“a+b-c”a+b-c”的的的的 值值值值

21、 返返返返 回回回回 给给给给 函函函函 数数数数 名名名名“GetnumberGetnumber”,如如如如果果果果我我我我们们们们输输输输入入入入Getnumber(9,4,2)Getnumber(9,4,2),则则则则会会会会返回返回返回返回“9+4-2”9+4-2”即即即即“11”11”给函数给函数给函数给函数“GetnumberGetnumber”。“FunctionFunctionFunctionFunction”的的的的英英英英文文文文含含含含意意意意就就就就是是是是“函函函函数数数数”。它它它它在在在在这这这这儿儿儿儿用用用用来来来来作作作作为为为为函函函函数数数数申申申申明明

22、明明的的的的一一一一个个个个内内内内容容容容。在在在在它它它它后后后后面面面面跟跟跟跟着着着着的的的的就就就就是是是是这这这这个个个个函函函函数数数数的的的的函函函函数数数数名名名名。在在在在这这这这个个个个函函函函数数数数名名名名后后后后面面面面的的的的括括括括号号号号中中中中,列列列列的的的的是是是是这这这这个个个个函函函函数数数数中中中中的的的的参参参参数数数数。每每每每个个个个函函函函数数数数之之之之间间间间要要要要用用用用逗逗逗逗号号号号隔隔隔隔开开开开,并并并并用用用用“AsAsAsAs”语语语语句句句句后后后后跟跟跟跟“数数数数据据据据类类类类型型型型”来来来来定定定定义义义义数

23、数数数据据据据的的的的类类类类型型型型。括括括括号号号号外外外外面面面面的的的的“As As As As 数数数数据据据据类类类类型型型型”用用用用来来来来定定定定义义义义“函函函函数数数数名名名名”的。它表示函数返回的数据的数据类型。的。它表示函数返回的数据的数据类型。的。它表示函数返回的数据的数据类型。的。它表示函数返回的数据的数据类型。其其其其实实实实子子子子程程程程序序序序和和和和函函函函数数数数很很很很相相相相似似似似,这这这这两两两两种种种种类类类类型型型型的的的的过过过过程程程程都都都都可可可可以以以以接接接接收收收收参参参参数数数数,函函函函数数数数可可可可以以以以返返返返回回

24、回回单单单单一一一一的的的的数数数数据据据据值值值值,但但但但子程序不能。子程序不能。子程序不能。子程序不能。我我我我们们们们不不不不能能能能使使使使用用用用CallCallCallCall来来来来执执执执行行行行函函函函数数数数,必必必必须须须须以以以以该该该该函函函函数数数数的的的的名名名名称称称称引引引引用用用用它它它它才才才才行行行行。函函函函数数数数调调调调用用用用是是是是由由由由接接接接在在在在函函函函数数数数名名名名称称称称后后后后的括号所辨别的,也就是说,函数需要参数。的括号所辨别的,也就是说,函数需要参数。的括号所辨别的,也就是说,函数需要参数。的括号所辨别的,也就是说,函数

25、需要参数。另另另另外外外外,我我我我们们们们可可可可以以以以从从从从ACCESSACCESSACCESSACCESS中中中中任任任任何何何何地地地地方方方方执执执执行行行行一一一一个个个个函函函函数数数数,包包包包括括括括从从从从查查查查询询询询中中中中的的的的表表表表达达达达式式式式中中中中和和和和宏宏宏宏中中中中。然然然然而而而而你你你你只只只只能能能能从从从从一一一一个个个个函函函函数数数数、子子子子程程程程序序序序或或或或作作作作为为为为一一一一个个个个窗窗窗窗体体体体或或或或报报报报表表表表中中中中的的的的一个事件过程来执行子程序。一个事件过程来执行子程序。一个事件过程来执行子程序。

26、一个事件过程来执行子程序。11.3 VB的数据类型与数据库对象的数据类型与数据库对象 当当当当建建建建立立立立Visual Visual Visual Visual BasicBasicBasicBasic数数数数据据据据表表表表时时时时,所所所所有有有有用用用用来来来来指指指指定定定定字字字字段段段段数数数数据据据据类类类类型型型型与与与与大大大大小小小小的的的的数数数数据据据据类类类类型型型型(除除除除OLEOLEOLEOLE对对对对象象象象和和和和备备备备注注注注数数数数据类型外),都在据类型外),都在据类型外),都在据类型外),都在Visual BasicVisual BasicVis

27、ual BasicVisual Basic中有对应的东西。中有对应的东西。中有对应的东西。中有对应的东西。在在在在AccessAccessAccessAccess中中中中可可可可用用用用的的的的数数数数据据据据类类类类型型型型分分分分为为为为种种种种:标标标标准准准准型型型型、自定义型、对象型。自定义型、对象型。自定义型、对象型。自定义型、对象型。.标准型,共有种标准型,共有种 ()整数:后缀符为()整数:后缀符为“”()长整数:后缀符为()长整数:后缀符为“&”()单精度:后缀符为()单精度:后缀符为“!”()双精度:后缀符为()双精度:后缀符为“#”()货币:后缀符为()货币:后缀符为“”

28、()字符串:后缀符为()字符串:后缀符为“$”()变体:可用于任何数据类型。()变体:可用于任何数据类型。.自定义型:它是用关键词自定义型:它是用关键词自定义型:它是用关键词自定义型:它是用关键词TypeTypeTypeType定义的,如:定义的,如:定义的,如:定义的,如:Type PointType PointType PointType Point X as Integer X as Integer X as Integer X as Integer Y as integer Y as integer Y as integer Y as integerEnd TypeEnd TypeEn

29、d TypeEnd Type 即定义了一个点(即定义了一个点(即定义了一个点(即定义了一个点(pointpointpointpoint)的数据结构,声明和的数据结构,声明和的数据结构,声明和的数据结构,声明和使用变量形式如:使用变量形式如:使用变量形式如:使用变量形式如:Dim Dim Dim Dim pCurPointpCurPointpCurPointpCurPoint as Point as Point as Point as Point PCurPoint.XPCurPoint.XPCurPoint.XPCurPoint.X=10=10=10=10PCurPoint.YPCurPoin

30、t.YPCurPoint.YPCurPoint.Y=10=10=10=103.3.3.3.对象型:对象型:对象型:对象型:所有的数据库中使用的数据库的对象,如数据表、所有的数据库中使用的数据库的对象,如数据表、所有的数据库中使用的数据库的对象,如数据表、所有的数据库中使用的数据库的对象,如数据表、查询、窗体和报表,也有对应的查询、窗体和报表,也有对应的查询、窗体和报表,也有对应的查询、窗体和报表,也有对应的AccessAccessAccessAccess数据类型。数据类型。数据类型。数据类型。Visual Basic支持的数据库对象的数据类型对象数据类型对象数据类型对应的数据库对象对应的数据库

31、对象数据库数据库databaseAccess数据库数据库窗体窗体forms窗体,包括子窗体窗体,包括子窗体报表报表report报表,包括子报表报表,包括子报表控件控件controls控件、窗体和报表控件、窗体和报表查询查询query查询定义(对等的查询定义(对等的SQL语句)语句)数据表数据表table数据库数据表数据库数据表结果表结果表recordset可更新的查询结果可更新的查询结果快照表快照表snapshot不可更新的查询结果不可更新的查询结果11.4 变量变量变量和常量指的是:被命名的内存单元变量和常量指的是:被命名的内存单元 在在VBVB中命名一个变量或常量的规则如下:中命名一个变量

32、或常量的规则如下:1.1.必须以字母或汉字开头,后可跟汉字、字母、数必须以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于字或下划线组成,长度小于等于255255个字符。个字符。2.2.不能使用不能使用VBVB中的关键字(中的关键字(IntegerInteger、StringString、DoubleDouble等)。等)。3.3.VBVB中不区分变量名的大小写,例如,中不区分变量名的大小写,例如,XXYXXY、XyXXyX、xyXxyX、xyxxyx等都被认为是同一个变量。为了便于区等都被认为是同一个变量。为了便于区分,一般变量首字母用大写字母,其余用小写字分,一般变量首字母

33、用大写字母,其余用小写字母表示。常量全部用大写字母表示。母表示。常量全部用大写字母表示。4.4.为了增加程序的可读性,可在变量名前加一个缩为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。如写的前缀来表明该变量的数据类型。如strMystringstrMystring、intCountintCount、sngMaxsngMax等。等。11.4.1 11.4.1 显式变量显式变量显式变量显式变量其语法定义如下:其语法定义如下:其语法定义如下:其语法定义如下:Dim Dim 变量名变量名变量名变量名 As As 类型名类型名类型名类型名DimDim是使用最多的一个关键词。是

34、使用最多的一个关键词。是使用最多的一个关键词。是使用最多的一个关键词。例:例:例:例:Dim Dim iCountiCount As integer As integer Dim Dim NewVarNewVar As Integer As Integer 在使用变量前,一般必须先声明变量名和其类型,在使用变量前,一般必须先声明变量名和其类型,在使用变量前,一般必须先声明变量名和其类型,在使用变量前,一般必须先声明变量名和其类型,以便系统为它分配存储单元。以便系统为它分配存储单元。以便系统为它分配存储单元。以便系统为它分配存储单元。可以在模块的说明区域中,加入可以在模块的说明区域中,加入可以在

35、模块的说明区域中,加入可以在模块的说明区域中,加入Option Option ExplictExplict语句语句语句语句来强制要求所有变量必须说明。来强制要求所有变量必须说明。来强制要求所有变量必须说明。来强制要求所有变量必须说明。11.4.2 11.4.2 11.4.2 11.4.2 变量的作用域与生命周期变量的作用域与生命周期变量的作用域与生命周期变量的作用域与生命周期局部变量:局部变量:局部变量:局部变量:在过程内在过程内在过程内在过程内用用用用DimDimDimDim语句声明的变量(或不加声语句声明的变量(或不加声语句声明的变量(或不加声语句声明的变量(或不加声明直接使用的变量),只

36、能在本过程中使用。不同的过明直接使用的变量),只能在本过程中使用。不同的过明直接使用的变量),只能在本过程中使用。不同的过明直接使用的变量),只能在本过程中使用。不同的过程中可有相同名称的变量,彼此互不相干。程中可有相同名称的变量,彼此互不相干。程中可有相同名称的变量,彼此互不相干。程中可有相同名称的变量,彼此互不相干。程序中声明的每个变量都有作用域,超出它的程序中声明的每个变量都有作用域,超出它的程序中声明的每个变量都有作用域,超出它的程序中声明的每个变量都有作用域,超出它的作用域后,变量就失去作用,成为没有定义的字符。作用域后,变量就失去作用,成为没有定义的字符。作用域后,变量就失去作用,

37、成为没有定义的字符。作用域后,变量就失去作用,成为没有定义的字符。AccessAccessAccessAccess中变量的作用域有中变量的作用域有中变量的作用域有中变量的作用域有3 3 3 3类。类。类。类。窗体窗体窗体窗体/模块级变量:模块级变量:模块级变量:模块级变量:在在在在“通用声明通用声明通用声明通用声明”段中用段中用段中用段中用DimDimDimDim语句或语句或语句或语句或用用用用PrivatePrivatePrivatePrivate语句声明的变量语句声明的变量语句声明的变量语句声明的变量,可被本窗体可被本窗体可被本窗体可被本窗体/模块的任何过模块的任何过模块的任何过模块的任何

38、过程访问。程访问。程访问。程访问。全局变量:全局变量:全局变量:全局变量:在在在在“通用声明通用声明通用声明通用声明”段中用段中用段中用段中用PublicPublicPublicPublic语句声明的语句声明的语句声明的语句声明的变量,可被本应用程序的任何过程或函数访问。变量,可被本应用程序的任何过程或函数访问。变量,可被本应用程序的任何过程或函数访问。变量,可被本应用程序的任何过程或函数访问。全局变量的值在整个应用程序中始终不会消失和全局变量的值在整个应用程序中始终不会消失和全局变量的值在整个应用程序中始终不会消失和全局变量的值在整个应用程序中始终不会消失和重新初始化,只有当整个应用程序执行

39、结束时,才会重新初始化,只有当整个应用程序执行结束时,才会重新初始化,只有当整个应用程序执行结束时,才会重新初始化,只有当整个应用程序执行结束时,才会消失。消失。消失。消失。ReDimReDim语句语句 该该语语句句与与DimDim语语句句联联合合起起来来使使用用,来来实实现现在在AccessAccess中中动态分配内存。动态分配内存。使使用用方方法法为为:首首先先在在代代码码中中使使用用DimDim或或GlobalGlobal来来声声明明一一个个动动态态数数组组,但但不不确确定定数数组组的的宽宽度度和和维维数数,在在需需要要使使用用数数组组来来存存储储数数据据时时,使使用用ReDimReDi

40、m来来声声明明数数组组的的宽宽度度和和维维数数,但这时已经但这时已经不能更改数组的类型不能更改数组的类型了。了。使使用用ReDimReDim可可以以为为一一个个动动态态数数组组分分配配内内存存,多多次次指指定定不不同同的的宽宽度度,但但多多次次定定义义时时,维维数数必必须须和和第第一一次次使使用用ReDimReDim定定义义的的维维数数一一致致,不不能能再再次次进进行行修修改改了了。另另外外,ReDimReDim语语句句之之后后还还可可以以使使用用修修补补词词“PreservePreserve”将将原原数数组组中中已已经经分分配配的的单单元元保保留留下下来来,这这时时当当第第二二次次使使用用R

41、 R分分配配内内存时,只能在最后一维上变动。存时,只能在最后一维上变动。11.4.3 11.4.3 11.4.3 11.4.3 隐含型变量隐含型变量隐含型变量隐含型变量在在在在VBVBVBVB中允许使用的变量未进行声明而直接使用。中允许使用的变量未进行声明而直接使用。中允许使用的变量未进行声明而直接使用。中允许使用的变量未进行声明而直接使用。所有隐式声明的变量都是所有隐式声明的变量都是所有隐式声明的变量都是所有隐式声明的变量都是Variant Variant Variant Variant 类型。类型。类型。类型。如:如:如:如:NewVarNewVarNewVarNewVar=12345=1

42、2345=12345=12345上上上上面面面面的的的的语语语语句句句句说说说说明明明明了了了了一一一一个个个个Variant Variant Variant Variant 类类类类型型型型的的的的变变变变量量量量NewVarNewVarNewVarNewVar,其值为其值为其值为其值为12345123451234512345。11.4.4 11.4.4 11.4.4 11.4.4 数组数组数组数组 数组不是一种数据类型,而是一组相同类型的变数组不是一种数据类型,而是一组相同类型的变数组不是一种数据类型,而是一组相同类型的变数组不是一种数据类型,而是一组相同类型的变量的集合。数组必须先声明后

43、使用。声明数组名、类量的集合。数组必须先声明后使用。声明数组名、类量的集合。数组必须先声明后使用。声明数组名、类量的集合。数组必须先声明后使用。声明数组名、类型、维数(下标的个数)和数组大小。声明数组,在型、维数(下标的个数)和数组大小。声明数组,在型、维数(下标的个数)和数组大小。声明数组,在型、维数(下标的个数)和数组大小。声明数组,在内存中分配一个连续的区域。内存中分配一个连续的区域。内存中分配一个连续的区域。内存中分配一个连续的区域。数组中各元素在通常情况下类型必须相同,但若数组中各元素在通常情况下类型必须相同,但若数组中各元素在通常情况下类型必须相同,但若数组中各元素在通常情况下类型

44、必须相同,但若数组类型为数组类型为数组类型为数组类型为VariantVariantVariantVariant时,可包含不同类型的数据。时,可包含不同类型的数据。时,可包含不同类型的数据。时,可包含不同类型的数据。数组元素:数组中的某个数据项。数组元素的使数组元素:数组中的某个数据项。数组元素的使数组元素:数组中的某个数据项。数组元素的使数组元素:数组中的某个数据项。数组元素的使用同简单变量的使用。用同简单变量的使用。用同简单变量的使用。用同简单变量的使用。Dim Dim 数组名(下标范围)数组名(下标范围)数组名(下标范围)数组名(下标范围)s s 类型名类型名类型名类型名Dim Dim 动

45、态数组名()动态数组名()动态数组名()动态数组名()s s 类型名类型名类型名类型名Dim Dim 数组名(下标开始值数组名(下标开始值数组名(下标开始值数组名(下标开始值 To To 下标结束值)下标结束值)下标结束值)下标结束值)As As 类型名类型名类型名类型名11.5 将数据库对象命名为将数据库对象命名为VBA程序代码程序代码中的变量中的变量 以以AccessAccess建立的数据库对象及其属性可被看成是建立的数据库对象及其属性可被看成是VBVB程序代码中的变量及其指定的值,例如含有客户地程序代码中的变量及其指定的值,例如含有客户地址数据的文本框。可以使用以下语句:址数据的文本框。

46、可以使用以下语句:Forms!Customers!Address=Forms!Customers!Address=“123 Elm St.123 Elm St.”关键字关键字FormsForms定义对象的类型。感叹号定义对象的类型。感叹号“!”(程(程序设计称之为序设计称之为bangbang符号)分隔开格式名和控件对象名。符号)分隔开格式名和控件对象名。“!”类似于在处理类似于在处理DOSDOS文件时,使用的文件时,使用的“”路径分路径分隔符。隔符。如果窗体控件对象名称中含有空格或标点符号,如果窗体控件对象名称中含有空格或标点符号,就要用方括号把名称括起来,如下面语句所示:就要用方括号把名称括

47、起来,如下面语句所示:Forms!Customers!Contact Name=Forms!Customers!Contact Name=“Joe Joe HillHill”可以使用可以使用SetSet关键字来建立控件对象的变量。当需关键字来建立控件对象的变量。当需要多次引用对象时,这样处理是很方便的。要多次引用对象时,这样处理是很方便的。Dim Dim txtContacttxtContact As Control As ControlSet Set txtContacttxtContact=Forms!Customers!Contact Name=Forms!Customers!Conta

48、ct NametxtContacttxtContact=“Jon Hill”=“Jon Hill”借助将变量说明为对象类型并使用借助将变量说明为对象类型并使用SetSet语句将对象语句将对象指派到变量的方法,可以将任何数据库对象指定为变指派到变量的方法,可以将任何数据库对象指定为变量的名称。当指定给对象一个变量名时,不是建立而量的名称。当指定给对象一个变量名时,不是建立而是引用内存的对象。是引用内存的对象。11.6 变量命名的法则变量命名的法则 在编写在编写Visual BasicVisual Basic程序代码时,可能会采用大程序代码时,可能会采用大量的变量名和许多不同的数据类型。对于控件对

49、象,量的变量名和许多不同的数据类型。对于控件对象,可以用可以用Visual BasicVisual Basic中的中的SetSet关键字将每个命名的控关键字将每个命名的控件对象指定为一个变量名称。但是随着程序代码的增件对象指定为一个变量名称。但是随着程序代码的增多,要记住所有变量的数据类型,就变成很困难的事多,要记住所有变量的数据类型,就变成很困难的事情了。情了。HungarianHungarian符号法,是目前比较流行的变量命名符号法,是目前比较流行的变量命名法则。其主要使用一组代表数据类型的码,用小写的法则。其主要使用一组代表数据类型的码,用小写的码作为变量名的字首。例如,代表文本框的字首

50、码是码作为变量名的字首。例如,代表文本框的字首码是txttxt,所以上例的文本框变量名为所以上例的文本框变量名为txtContacttxtContact。用户定义的数据类型的标识符(用户定义的数据类型的标识符(用户定义的数据类型的标识符(用户定义的数据类型的标识符(IdentifierIdentifier)被被被被称为产生的标签。在称为产生的标签。在称为产生的标签。在称为产生的标签。在HungarianHungarian字符串中,建立的标字符串中,建立的标字符串中,建立的标字符串中,建立的标签是大写的,如下所示:签是大写的,如下所示:签是大写的,如下所示:签是大写的,如下所示:Type REC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁