全国二级ACCESS教程 第8章 模块与VBA编程基础

更新时间:2023-07-26 22:19:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Access数据库程序设计

第8章 模块与VBA编程基础授课教师:邓广彪

联系电话:13978773357电子邮箱:342039882@

9.1.1 模块的基本概念模块是Access中的一个重要对象,它是以VBA声 明和过程作为一个独立单元进行保存的集合。 在前面操作的过程中,使用宏或者给按钮添加 固定的动作可以完成一定的任务,如关闭窗体、打 开窗体等。但是无法实现复杂的操作,如输入圆的 半径计算出圆的周长、面积等。使用VBA模块编程, 能够实现强大的数据处理功能,实现数据处理的自 动化。

模块的分类:类模块和标准模块。 类模块:窗体模块和报表模块中编写的程序都 属于类模块,是指在窗体或报表中所编写的程序, 它们都从属于自己的窗体或报表。 进入类模块的方法:在窗体或报表设计视图中 单击工具栏的“查看代码”按钮;或为窗体或报表 创建对应对象的事件过程;或点击“创建”选项卡 的“Visual Basic”。 窗体和报表模块具有局限性,其作用范围局限 在所属的窗体或报表内部,而生命周期则伴随着窗 体或报表的打开而开始,关闭而结束。

标准模块:存放公共使用的过程,即通过“模 块”对象新建模块的代码过程就是标准模块。 标准模块模块中的公共变量和公共过程具有全 局性,可供整个应用系统的所有对象使用。 3.将宏转换为模块 在宏设计区中点击“将宏转换为Visual Basic” 代码可以将宏转变为代码。

8.1.2 创建模块模块是以过程为单元组成,一个模块包含一个 声明区域和一个或多个子过程或子函数过程,声明 区域用于模块中模块共享的变量或公共变量。 过程是组成模块的基本单元,由VBA代码编写而 成,分为Sub子过程和Function函数过程。

② Function函数过程 以Function开始和End Function结束,Function函 数过程执行一系列操作,并 且有返回任何值。 格式: Function 函数名([参数]) 代码 End Function 调用:不使用Call调用,直 Sub和Function函数过 接用函数名调用。 程的详细使用见9.1.5。

① Sub子过程 以Sub开始和End Sub结 束,Sub子过程只执行一 系列操作,不返回任何 值。 格式: Sub 过程名([参数]) 代码 End Sub 调用:使用Call调用。

在模块中运行宏 在Access中定义了一个特殊的对象DoCmd,可以通 过它来运行宏,语法格式为: DoCmd.RunMacro "已定义好的宏名"[,重复次数][, 执行宏的条件] 如已定义好一个宏,名字叫“提示”,则使用命 令 DoCmd.RunMacro "提示" 可以运行这个宏。

8.1.3 VBA程序设计基础1、面向对象的基本概念 (1) 对象和集合 对象:现实中的每个物体都可以看成是一个对象, 如李四的汽车、张三这个人等。集合表示某类对象所 包含的实例

构成。 (2) 属性和方法 一个对象就是一个实体,每个实体都有自己的属 性,如汽车具有颜色、大小等属性,属性描述了对象 的特征。属性的引用方式:对象名.属性。 如:Command0.ForeColor = RGB(0, 0, 255)可以 改变按钮Command0的字体颜色。

方法描述了对象的行为,表示对象能进行的操作。 方法的引用方式:对象名.方法。 如:Command0.Move 5000, 3000 可以移动 Command0按钮的位置。 (3) DoCmd对象 Access数据库提供了表、窗体、报表等7种对象以 外,还提供了一个DoCmd对象,它的主要功能是功过调 用它的方法来实现VBA编程中对Access的操作,如可以 使用OpenForm方法来打开一个已经建立好的窗体。 调用格式:DoCmd.方法名 参数 如:DoCmd.OpenReport "ABC"

(4) 事件和事件过程 事件是由VBA预先设置好的,能够被对象识别的动 作,如Click单击、DblClick双击等。事件过程就是在 对应的对象上发生了对应的动作而执行的代码,在VBE 编辑窗口中选择了对应的对象和事件后,会自动出现 事件过程框架。 举例:如给一个窗体的某个按钮单击事件添加代 码,用MsgBox提示一段信息。

3、数据库类型和数据库对象 (1) 数据库对象 数据库对象是指数据库中的表、查询、窗体、报 表、控件等实际存在的对象,在VBA编程中都有对应的 数据类型与之相对应,见表9-1。 如:dim db as database 则 db 为数据库类型的变量,可以存储数据库对 象。

(2) VBA中的基本数据类型 Access数据库系统创建表对象时所涉及到的字段 类型(除OLE和备注类型外),在VBA中都有相应的数 据类型(P130表8-2中的“类型标识”)。所以在VBA 编程中要存储对应类型的值,那么就需要定义对应类 型的变量。

① 布尔数据类型 布尔数据类型只有True和False两个值。布尔数据 类型转换为其他数据类型时,True转换为-1,False转 换为0。其他类型转换为布尔数据时,0转换为False, 其他值转换为True。 ② 日期数据类型 任何可识别的文本日期数据都可以赋值给日期变 量,这个类型包括了日期和时间,在书写时日期的年 月日值用“/”或“-”隔开,时间的时分秒值用“:” 隔开,如果同时使用日期和时间在日期和时间中间用 一个空格隔开,所有的日期、时间数据必须写在一对 “#”号中。

③ 变体数据类型 变体数据类型时一种特殊的数据类型,除开定长 字符串类型和用户自定义类型外,可以存储任何其他 类型的数据。 如果没有用“dim as ”语句定义的变量或者定 义时不写“as ”的变量都默认为变体类型。 如:Dim a '这句可以省略 a = 5 MsgBox a a = "abcde" MsgBox a a = #6/5/1985# MsgBox a

4、变量与常量 变量是指在程序运行时值会发生变化的数据

。变 量的三要素:变量名、变量类型、变量的值。 变量命名的几个特点: (1) 不能使用VBA的关键字,如不能起变量名为 Integer。 (2) 变量名不区分大小写,如SUM和sum表示同一 个变量。 (3) 不能包含空格和除了下划线以外的其他任何 标点符号,不能以数字开头。 (4) 长度不超过255个字符。

(2) 变量的声明 ① 显示声明 变量采用先定义后使用是一种较好的方法。 格式:Dim 变量名 as 数据类型[,变量名 as 数 据类型, ] 或: Dim 变量名符号 如:Dim a As Integer, b As Boolean Dim z As Long Dim x, y As String Dim age% Dim name$ 注意:凡没有“as 数据类型”则为Variant。

② 隐含型变量 没有定义变量,直接将一个值赋给变量名的方式 来建立变量;或在Dim的定义中省略as 数据类型。这 两种方式建立的变量为variant类型。 如:NewVar = 528 dim x ③强制声明 如果需要强制变量必须定义,则需要在声明区域 写上语句:Option Explicit。但只强制当前模块必须 要定义才能使用,对其他模块没有影响。

(3) 变量的作用域: ① 局部范围:在过程或函数内部定义的或直接使 用的变量,只在本过程有效。 ② 模块范围:在过程之外,即模块的最开始变量 定义处以dim关键字定义的变量,在本模块的所有过程 中都可以使用这个变量。 ③ 全局范围:在模块开始的变量定义处以 public 变量名 as 数据类型 定义的变量,在所有的 模块中均可以使用。

如:a 在模块1写 b 在模块2写上如 上如下两个过程: 下一个个过程: Sub A() Sub c() x = x + 5 x = x + 20 MsgBox x MsgBox x End Sub End Sub Sub B() c 测试: x = x + 10 测试1:直接运行三个过程。 MsgBox x 测试2:在模块1的定义变量处写上 End Sub Dim x As Integer 测试3:将模块1的定义变量代码改为 Public x As Integer

本文来源:https://www.bwwdw.com/article/5x1m.html

Top