1 / 21

Access VBA 程序设计

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

joella
Download Presentation

Access VBA 程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. VBA 程序的开发环境 • VBA中的程序与函数共有4种,分别是:一般程序(Sub)、事件程序(Event)、属性程序(Property)和函数(Function) • VBA程序窗口有代码窗口、立即窗口、本地窗口、监视窗口、工程资源管理器和属性窗口等6种窗口。

  3. Access Basic编程语言 • 在进行Access的VBA编程之前,要了解Access Basic的基本编程语言 • 一、数据类型 • 二、变量定义 • 三、变量的作用域

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

  5. 例如 Type Point X as Integer Y as integer End Type 即定义了一个点(point )的数据结构,声明和使用变量形式如: Dim pCurPoint as Point PCurPoint.X=10 PCurPoint.Y=10

  6. 3.对象型 Access中有17种对象型,是在程序中操作数据库的途径,操作数据库都是通过操作各种数据库对象的属性和方法来实现的。分别为: Database,Workspace,Document,Container,User,Group,Report,Control,TableDef,QueryDef,Recordset,Field,Index,Relation,Parameter,Property.

  7. 二、变量定义 在Access中用来定义变量的关键词有:Dim,Static,Global,ReDim. 1.Dim,这是使用最多的一个关键词,其语法定义如下: Dim 变量名 As 类型名 Dim 数组名(下标范围)As 类型名 Dim 动态数组名() As 类型名 Dim 数组名(下标开始值 To 下标结束值) As 类型名

  8. 例如 • 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 类型名

  9. 例如:Global nNumber As Integer Global nNumber ()As Integer Global nNum(10,10) As Integer

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

  11. 下面的例子是非法操作: 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()就可以测试出数组的上、下界。具体语法如下:

  12. 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相同。

  13. 三、变量的作用域 程序中声明的每个变量都有作用域,超出它的作用域后,变量就失去作用,成为没有定义的字符。Access中变量的作用域有3类。 (1)全局变量,这种变量在数据库应用系统中的所有地方都可以使用,定义一个全局变量只能在模块对象中进行,使用Global来定义。 (2)对象级变量,可以在一个对象(窗体、报表、模块)中的任何地方使用,不能跨越所在的对象。在对象的General中进行定义,使用Dim关键词。 (3)模块级变量,只能在一个模块中使用,不能跨出模块,这种变量即常用的局部变量。

  14. 10.4 Access Basic 语句 Access支持结构化语言中的顺序、分支、循环语句,另外还有一些特殊作用的功能语句。 一、GOTO语句 VBA的GOTO Labal语句可以跳过一些代码块到Labal的位置,并从该点继续执行。Labal标号要从代码的最左边(第一列)开始写,这个位置通常会影响代码的缩进格式。 一般情况下不要使用GOTO语句。在VBA程序中使用GOTO语句的唯一一个目的就是用On Error GoTo Labal语句来处理错误。

  15. 二、IF语句 If/Then/End if语句是典型的判断分支控制语句。语法格式为: If 条件[=True] Then …条件为真时执行的语句 End if 另外还可以使用嵌套IF语句格式: If条件1[=True]Then …条件为真时执行的语句 Elself条件2[=True] Then …条件1不成立但条件2成立时,执行的语句 End if

  16. 例如 下面的IF语句用来判断一个字符是否是字母,而且判断它的大小写。 If Asc(strChar)>63 And Asc(strChar<91) Then strCharType=“大写字母子” Elself Asc(strChar)>96 And Asc(strChar<123) Then strCharType=“小写字母” End If

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

  18. 例如:下面语句用来对字母进行判断 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

  19. 四、For语句 For语句是最常用的循环控制语句。语法格式为: For 变量=开始值 To 结束值 Step 步长 循环执行语句 Next 变量 例如:下面使用For语句为数值赋初始值。 For nLeter=1 To 26 strChar(nLeter)=Char(nLeter+63) Next nLeter 注意 当STEP不写时,默认的步长是1。

  20. 五、DO语句 Do语句是另外一种循环语句,有两种格式: Do While…Loop和Do Until…Loop. 1.Do while 条件[= True] 循环语句,含有“条件”的变更语句 Loop 2.Do Until 条件 <>True(或Not 条件) 循环语句 Loop

  21. 六、功能语句 • Appactivate • Beep • ChDrive • Data • Delete Control • Delete Report Control • DoCmd • Erase • MsgBox 使用格式为:MsgBox(msg [,type[,title]]]) • Set 使用格式为:Set ObjName=ObjectValue. • Time

More Related