21
Access VBA 程程程程 本本本本 • Access Basic 程程程程 • 程程程 程程程程程程 • Access Basic 程程 • 程程程程程 • Access Basic 程程程程

Access VBA 程序设计

  • Upload
    joella

  • View
    91

  • Download
    10

Embed Size (px)

DESCRIPTION

Access VBA 程序设计. 本章重点 Access Basic 编程语言 运算符、函数与表达式 Access Basic 语句 模块的使用 Access Basic 的扩展性. VBA 程序的开发环境. VBA 中的程序与函数共有4种,分别是:一般程序( Sub )、事件程序( Event )、属性程序( Property )和函数( Function ) VBA 程序窗口有代码窗口、立即窗口、本地窗口、监视窗口、工程资源管理器和属性窗口等6种窗口。. Access Basic 编程语言. - PowerPoint PPT Presentation

Citation preview

Page 1: Access VBA 程序设计

Access VBA 程序设计

本章重点• Access Basic 编程语言• 运算符、函数与表达式• Access Basic 语句• 模块的使用• Access Basic 的扩展性

Page 2: Access VBA 程序设计

VBA 程序的开发环境• VBA 中的程序与函数共有4种,分别是:

一般程序( Sub )、事件程序( Event )、属性程序( Property )和函数( Function )

• VBA 程序窗口有代码窗口、立即窗口、本地窗口、监视窗口、工程资源管理器和属性窗口等6种窗口。

Page 3: Access VBA 程序设计

Access Basic 编程语言• 在进行 Access 的 VBA 编程之前,要了

解 Access Basic 的基本编程语言• 一、数据类型• 二、变量定义• 三、变量的作用域

Page 4: Access VBA 程序设计

一、数据类型在 Access 中可用的数据类型分为3种:标准型、自定义型、对

象型。1 . 标准型,共有7种。 (1)整数:后缀符为“%” (2)长整数:后缀符为“ &” (3)单精度:后缀符为“ !” (4)双精度:后缀符为“ #” (5)货币:后缀符为“ @” (6)字符串:后缀符为“ $” (7)变体:可用于任何数据类型。2 . 自定义型:它是用关键词 Type 标本的,如:

Page 5: Access VBA 程序设计

例如Type Point

X as Integer

Y as integer

End Type

即定义了一个点( point )的数据结构,声明和使用变量形式如:

Dim pCurPoint as Point

PCurPoint.X=10

PCurPoint.Y=10

Page 6: Access VBA 程序设计

3 . 对象型Access 中有17种对象型,是在程序中操作

数据库的途径,操作数据库都是通过操作各种数据库对象的属性和方法来实现的。分别为:

Database,Workspace,Document,Container,User,Group,Report,Control,TableDef,QueryDef,Recordset,Field,Index,Relation,Parameter,Property.

Page 7: Access VBA 程序设计

二、变量定义

在 Access 中用来定义变量的关键词有: Dim,Static,Global,ReDim.

1.Dim, 这是使用最多的一个关键词,其语法定义如下:

Dim 变量名 As 类型名Dim 数组名(下标范围)A s 类型名Dim 动态数组名() A s 类型名Dim 数组名(下标开始值 To 下标结束值) As

类型名

Page 8: Access VBA 程序设计

例如• Dim nNum(10,10) As Integer

• Dim nNum(-10 To 10,1To 5) As Integer

2.Static, 用来定义一个模块级的静态变量。语法格式为:

Static 变量名 As 类型Static 数组名(下标) As 类型3.Global, 用来定义一个全局变量。语法格式为:Global 变量名 As 类型名Global 数组名(下标范围) As 类型名Global 动态数组名() As 类型名

Page 9: Access VBA 程序设计

例如: Global nNumber As Integer

Global nNumber ()As Integer

Global nNum(10,10) As Integer

Page 10: Access VBA 程序设计

4.ReDim• 4.ReDim, 该语句与 Dim 语句联合起来使用,来

实现在 Access 中动态分配内存。使用方法为:首先在代码中使用 Dim 或 Global 来声明一个动态数组,但不确定数组的宽度和维数,在需要使用数组来存储数据时,使用 ReDim 来声明数组的宽度和维数,但这时已经不能更改数组的类型了。使用 ReDim 可以为一个动态数组分配内存,多次指定不同的宽度,但多次定义时,维数必须和第一次使用 ReDim 定义的维数一致,不能再次进行修改了。另外, ReDim 语句之后还可以使用修补词“ Preserve” 将原数组中已经分配的单元保留下来,这时当第二次使用 R 分配内存时,只能在最后一维上变动。例如:

Page 11: Access VBA 程序设计

下面的例子是非法操作:ReDim nNum(5,5,10)

ReDim Preserve nNum(5,7,10)

应该使用下面的代码:ReDim nNum(5,5,10)

ReDim Preserve nNum(5,5,30)

动态分配数组后,有时需要知道数组的上、下界,在 A 中使用 LBount(),UBound() 就可以测试出数组的上、下界。具体语法如下:

Page 12: Access VBA 程序设计

Lbound( 数组名 [ ,维数 ])

例如:ReDim strName(0,To 10,2 To 10,-1 To 10)

LBount(strName,1) 的返回值为 0 ; LBount(strName,2) 的返回值为 2 ; LBount(strName,3)的返回值为 -1 。

UBound( 数组名 [ ,维数 ] )可以返回数组的上界,使用情况和 LBount 相同。

Page 13: Access VBA 程序设计

三、变量的作用域程序中声明的每个变量都有作用域,超出它的作用

域后,变量就失去作用,成为没有定义的字符。Access 中变量的作用域有 3 类。

(1) 全局变量,这种变量在数据库应用系统中的所有地方都可以使用,定义一个全局变量只能在模块对象中进行,使用 Global 来定义。

(2) 对象级变量,可以在一个对象(窗体、报表、模块)中的任何地方使用,不能跨越所在的对象。在对象的 General 中进行定义,使用 Dim 关键词。

(3) 模块级变量,只能在一个模块中使用,不能跨出模块,这种变量即常用的局部变量。

Page 14: Access VBA 程序设计

10.4 Access Basic 语句Access 支持结构化语言中的顺序、分支、循环语

句,另外还有一些特殊作用的功能语句。一、 GOTO 语句 VBA 的 GOTO Labal 语句可以跳过一些代码块

到 Labal 的位置,并从该点继续执行。 Labal 标号要从代码的最左边(第一列)开始写,这个位置通常会影响代码的缩进格式。

一般情况下不要使用 GOTO 语句。在 VBA 程序中使用 GOTO 语句的唯一一个目的就是用 On Error GoTo Labal 语句来处理错误。

Page 15: Access VBA 程序设计

二、 IF 语句If/Then/End if 语句是典型的判断分支控制语句。语

法格式为:If 条件 [=True] Then …条件为真时执行的语句End if 另外还可以使用嵌套 IF 语句格式:If条件 1[=True]Then…条件为真时执行的语句Elself条件 2[=True] Then…条件 1 不成立但条件 2 成立时,执行的语句End if

Page 16: Access VBA 程序设计

例如下面的 IF 语句用来判断一个字符是否是字母,而且判断它的大小写。

If Asc(strChar)>63 And Asc(strChar<91) Then

strCharType=“大写字母子”Elself Asc(strChar)>96 And Asc(strChar<123) Then

strCharType=“小写字母”End If

Page 17: Access VBA 程序设计

二、 Select 语句当有多种选择时,使用 If …Else 语句,这样的语句需要多重嵌套,使得程序十分复杂,不容易读,这时就可以使用 Select 语句, Select 语句是一个多分支控制语句。语法格式为:

Select Case 表达式 Case 值 1 语句 1 Case 值 2 语句 2 …Case Else 语句End select

Page 18: Access VBA 程序设计

例如:下面语句用来对字母进行判断Select Case strChar Case “A”To “Z” strCharType=“大写字母” Case “a”To “z” strCharType=“小写字母” Case “0”To “9” strCharType=“ 数字字母” Case “!”,”?”,”.”,”,””;” strCharType=“ 标点符号” Case “” strCharType=“空格” Case <32 strCharType=“ 特殊字母” Case Else strCharType=“ 其它字母”End Select

Page 19: Access VBA 程序设计

四、 For 语句

For 语句是最常用的循环控制语句。语法格式为:For 变量 = 开始值 To 结束值 Step 步长 循环执行语句Next 变量例如:下面使用 For 语句为数值赋初始值。For nLeter=1 To 26

strChar(nLeter)=Char(nLeter+63)

Next nLeter

注意 当 STEP 不写时,默认的步长是 1 。

Page 20: Access VBA 程序设计

五、 DO 语句

Do 语句是另外一种循环语句,有两种格式:Do While…Loop 和 Do Until…Loop.

1.Do while 条件 [= True]

循环语句,含有“条件”的变更语句Loop

2.Do Until 条件 <>True( 或 Not 条件) 循环语句Loop

Page 21: Access VBA 程序设计

六、功能语句• Appactivate

• Beep

• ChDrive

• Data

• Delete Control

• Delete Report Control

• DoCmd

• Erase

• MsgBox 使用格式为 :MsgBox(msg [,type[,title]]])

• Set 使用格式为: Set ObjName=ObjectValue.

• Time