预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共88页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章模块与VBA编程基础9.1.1模块的基本概念模块的分类:类模块和标准模块。标准模块:存放公共使用的过程,即通过“模块”对象新建模块的代码过程就是标准模块。 标准模块模块中的公共变量和公共过程具有全局性,可供整个应用系统的所有对象使用。8.1.2创建模块①Sub子过程 以Sub开始和EndSub结束,Sub子过程只执行一系列操作,不返回任何值。 格式: Sub过程名([参数]) 代码 EndSub 调用:使用Call调用。在模块中运行宏 在Access中定义了一个特殊的对象DoCmd,可以通过它来运行宏,语法格式为: DoCmd.RunMacro"已定义好的宏名"[,重复次数][,执行宏的条件]1、面向对象的基本概念 (1)对象和集合 对象:现实中的每个物体都可以看成是一个对象,如李四的汽车、张三这个人等。集合表示某类对象所包含的实例构成。方法描述了对象的行为,表示对象能进行的操作。方法的引用方式:对象名.方法。 如:Command0.Move5000,3000可以移动Command0按钮的位置。(4)事件和事件过程 事件是由VBA预先设置好的,能够被对象识别的动作,如Click单击、DblClick双击等。事件过程就是在对应的对象上发生了对应的动作而执行的代码,在VBE编辑窗口中选择了对应的对象和事件后,会自动出现事件过程框架。 举例:如给一个窗体的某个按钮单击事件添加代码,用MsgBox提示一段信息。3、数据库类型和数据库对象 (1)数据库对象 数据库对象是指数据库中的表、查询、窗体、报表、控件等实际存在的对象,在VBA编程中都有对应的数据类型与之相对应,见表9-1。 如:dimdbasdatabase 则db为数据库类型的变量,可以存储数据库对象。(2)VBA中的基本数据类型 Access数据库系统创建表对象时所涉及到的字段类型(除OLE和备注类型外),在VBA中都有相应的数据类型(P130表8-2中的“类型标识”)。所以在VBA编程中要存储对应类型的值,那么就需要定义对应类型的变量。①布尔数据类型 布尔数据类型只有True和False两个值。布尔数据类型转换为其他数据类型时,True转换为-1,False转换为0。其他类型转换为布尔数据时,0转换为False,其他值转换为True。③变体数据类型 变体数据类型时一种特殊的数据类型,除开定长字符串类型和用户自定义类型外,可以存储任何其他类型的数据。 如果没有用“dim…as…”语句定义的变量或者定义时不写“as…”的变量都默认为变体类型。4、变量与常量 变量是指在程序运行时值会发生变化的数据。变量的三要素:变量名、变量类型、变量的值。 变量命名的几个特点: (1)不能使用VBA的关键字,如不能起变量名为Integer。 (2)变量名不区分大小写,如SUM和sum表示同一个变量。 (3)不能包含空格和除了下划线以外的其他任何标点符号,不能以数字开头。 (4)长度不超过255个字符。(2)变量的声明 ①显示声明 变量采用先定义后使用是一种较好的方法。 格式:Dim变量名as数据类型[,变量名as数据类型,……] 或:Dim变量名符号 如:DimaAsInteger,bAsBoolean DimzAsLong Dimx,yAsString Dimage% Dimname$ 注意:凡没有“as数据类型”则为Variant。②隐含型变量 没有定义变量,直接将一个值赋给变量名的方式来建立变量;或在Dim的定义中省略as数据类型。这两种方式建立的变量为variant类型。 如:NewVar=528 dimx(3)变量的作用域: ①局部范围:在过程或函数内部定义的或直接使用的变量,只在本过程有效。 ②模块范围:在过程之外,即模块的最开始变量定义处以dim关键字定义的变量,在本模块的所有过程中都可以使用这个变量。 ③全局范围:在模块开始的变量定义处以public变量名as数据类型定义的变量,在所有的模块中均可以使用。如:a在模块1写上如下两个过程: SubA() x=x+5 MsgBoxx EndSub SubB() x=x+10 MsgBoxx EndSub变量的持续时间或生命周期: 变量的持续时间是从变量定义语句所在的过程第一次运行到程序代码执行完毕将控制权交回给调用它的过程为止的时间,即变量的值没被重置都还属于它的持续时间。 以Dim…As…声明的局部变量,会被设置默认值,数据类型为0,字符串变量为空字符""。 过程或函数内部的变量每次运行过程时都会被重新赋值(重置),如果想运行时保留上一次执行的结果,则需要在定义时将Dim改为Static。如:对于下列程序,每次执行时a的值都在上一次基础上加1,如果将static改为Dim,则每次a的值都为1。 Subx() StaticaA