access8-VBA编程入门语法.ppt_第1页
access8-VBA编程入门语法.ppt_第2页
access8-VBA编程入门语法.ppt_第3页
access8-VBA编程入门语法.ppt_第4页
access8-VBA编程入门语法.ppt_第5页
免费预览已结束,剩余85页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章,VBA编程入门,内容提要,8-1 VBA概念 8-2 VBA编程基础 8-3 VBA常用语句 8-4 VBA程序流程控制 8-5 数组 8-6 VBA与宏 8-7 小结及练习,VBA(Visual Basic for Application)是Microsoft Office系列软件的内置编程语言,其语法结构与Visual Basic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。,8-1 VBA概述,8-1-1 VBA简介,集合和对象 VBA中的应用程序是由许多对象组成的,如表、窗体、查询等。对象是帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程序。

2、数据库窗口把可供选择的对象排列在一起,形成不同的类。,8-1-2 面向对象程序设计的基本概念,对象的属性、事件和方法,属性 属性描述了对象的自身性质。其格式为: 对象名.属性=属性值 事件 事件是指可以发生在一个对象上且能够被该对象所识别的动作。 如:单击某个命令按钮就产生该按钮的“单击”事件 当某个对象发生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一段程序。,方法 方法是系统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。在需要使用的时候可以直接调用。 其调用格式为: 对象名.方法名,Access中除数据库的7个对象外,还提供一个重要的对象:DoCmd对

3、象 除窗体、控件的SetFocus(获得控制焦点)方法外,用得最多得是 DoCmd对象 的一些方法。使用这些方法,可以在VBA中运行Access的操作。,打开当前数据库中的“雇员”窗体 DoCmd.OpenForm Employees 在数据库窗口中选择“雇员”窗体 DoCmd.SelectObject acForm, Employees ,True 在数据库窗口中关闭“雇员”窗体 DoCmd.Close acForm, “Employees”, acSaveYes 删除数据库中的“雇员” 表 DoCmd.DeleteObject Employees,DoCmd 对象的常用方法(参照教材P19

4、0页),例8-1 新建一个窗体并添加两个命令按钮,运行窗体后,单击第一个按钮,新式一个消息框;单击第二个按钮,退出当前窗体。(参照教材P191页),通过此例,体会可视化编程、面向对象、事件过程、应用方法等基本概念。,进入VBE编程环境 VBE窗口的组成 VBE窗口由工具栏、工程资源管理器窗口、 属性窗口、代码窗口和立即窗口组成。 在VBE环境中编写VBA代码,8-1-3 VBA编程环境,标准工具条,视图Microsoft Access按钮:切换Access 2000窗口 插入按钮:插入模块或过程 运行子过程/用户窗体按钮:运行模块中的程序 中断按钮:中断正在运行的程序 重新设置按钮:结束正在运

5、行的程序 设置模式按钮:在设计模式和非设计模式之间切换 工程资源管理器按钮:用于打开工程资源管理器 属性窗口按钮:用于打开属性窗口 对象浏览器按钮:用于打开对象浏览器,VBE编程环境,8-2-1 常量、变量,8-2 VBA编程基础,常量:在程序运行中其存储的值不会改变。 变量:在程序运行中其值可以改变。,VBA使用常量、变量来存储值。用来保存在程序运行期间数据。,常量 在程序运行过程中,其值不会被改变的量称为常量。在VBA中有三类常量: 直接常量 如:10,20%, 123.0, “AB”,“VBA程序设计”等 符号常量 系统常量 指VBA系统预先定义好的,用户可以直接引用的量。 如:acFo

6、rm,acQuery,vbOk,vbRed,符号常量 在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。 VBA中使用关键字Const 声明符号常量。 其格式如下: Const 常量名 类型符号=常数表达式 如: Const PI#=3.1415926,变量是内存中的临时单元,存放在程序执行过程中产生的中间结果和最后输出结果。 在程序中使用变量,就要给变量定义名称及类型,即对变量进行声明。,变量,变量命名规则 变量名必须以字母或汉字开头,后可跟字母、汉字、数字或下划线组成(不能含有小数点和空格),长度不超过255个字符的

7、字符串; 不能使用VBA中的关键字; VBA中不区分变量名的大小写; 变量名的最后一个字符可以是%、 Sum End Sub,良好的编程习惯应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VBA 中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:Option Explicit,声明而未赋值的变量的值为: 数值型变量初始化为0; 字符型变量为零长度字符串; 变体型变量初始化为 Empty。,变量的初始化,8-2-3 运算符和表达式(教材P199页),运算符 算术运算符,例如:123 + 456 结果 123456 123 j; 次循环i

8、=; i Next i Print 退出循环后i=; i End Sub 正常情况:i=1,3,5,7,9,11,13,15,17,19 现在:i=4,9,14,19,DoLoop循环语句(用于控制循环次数未知) 形式1: Do While|Until 语句块 Exit Do 语句块 Loop,形式2: Do 语句块 Exit Do 语句块 Loop While|Until ,DoLoop语句(循环结构),Do While Loop语句 Do Until Loop语句 Do Loop While语句 Do Loop Until语句,Do While Loop语句,i=1 Do While i=

9、10 s=s+i i=i+1 Loop 当i=10成立时,执行循环体 循环变量i必须有初值 防止产生死循环 有可能一次也不执行循环体,修改循环控制变量,改变加数值,Do Loop While,i=1 Do s=s+i i=i+1 Loop While i=10 当i=10成立时,执行循环体 循环变量i必须有初值 防止产生死循环 至少执行一次循环体,修改循环控制变量,改变加数值,Do Until Loop,i=1 Do Until i10 s=s+i i=i+1 Loop 当i10成立时,结束执行循环体 循环变量i必须有初值 防止产生死循环 有可能一次也不执行循环体,修改循环控制变量,改变加数值

10、,Do Loop Until,i=1 Do s=s+i i=i+1 Loop Until i10 当i10成立时,结束执行循环体 循环变量i必须有初值 防止产生死循环 至少执行一次循环体,修改循环控制变量,改变加数值,补充:WhileWend语句 格式如下: While Wend 说明:该语句的功能与Do While .Loop实现的循环完全相同。,三种循环语句:即For 、DoLoop,共同的特点是重复执行一个语句系列(循环体),不同点是控制重复次数的时机和方法不一样。 参照教材P206-P214页实例,掌握程序的控制结构。,数组:数组不是一种数据类型,而是一组相同类型的变量的集合。可以像使

11、用普通变量一 样使用数组中的每一个元素。 使用数组的好处是用一个 数组名代表逻辑上相关的一批数据,用下标表示该数组中的各个元素,可以提高处理数据的效率,缩短和简化程序。,8-5 数组,数组不是一种数据类型,而是一组相同类型的变量的集合,数组必须先声明后使用。 两类数组: 静态(定长)数组、动态(可变长)数组 1.一维数组 定义一维数组的形式: Dim 数组名(下界 To上界) As 类型 声明了数组的名、维数、大小、类型,8-5-1 数组的定义,说明: 数组名的命名规则与变量的命名相同。 数组的元素个数:上界-下界+1。 缺省为0,若希望下标从1开始,可在模块的通用部分使用Option Bas

12、e语句将设为1。其使用格式是: Option Base 0|1 后面的参数只能取0或1 例如: Option Base 1 将数组声明中缺省下标设为1 下界和不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。,如果省略As子句,则数组的类型为变体类型。 数组中各元素在内存占一片连续的存储空间,一维数组在内存中存放的顺序是按下标大小的顺序。,例:Dim mark(1 to 100) As Integer,例:Dim a(-1 to 3) As Integer 声明一维数组a,包含了5个整型元素a(-1)、 a(0) 、a(1) 、a(2) 、a(3);,在定义静态数组时,每

13、一维的元素个数必须 是常数,不能是变量或表达式。 如:错误的声明,下标是变量 Dim x(n) 或: n =Inputbox(“输入n ” ) Dim x(n) As Single,注意:,在数组声明中的下标说明了数组的整体,即每维的大小;而在程序其他地方出现的下标表示数组中的一个元素。两者写法形式相同,但意义不同。 例如:Dim x(10) As Integer x(10)=100,表示声明了数组x,有11个数组元素,对x(10)这个数组元素赋值,定义二维数组的形式: Dim 数组名(下界1 To上界1,下界2 To上界2) As 类型,例如:Dim a(2,3) As Single 二维数

14、组在内存的存放顺序是“先行后列”。 数组a的各元素在内存中的存放顺序是: a(0,0)a(0,1)a(0,2)a(0,3) a(1,0)a(1,1)a(1,2) a(1,3) a(2,0)a (2,1)a(2,2)a(2,3),2.二维数组,例:Dim lArray( 0 To 3, 0 To 4) As Long 共有 45个元素等价于: Dim lArray(3,4) As Long,动态数组指在声明数组时未给出数组的大小(省略括号中的下标),当要使用它时,随时用ReDim语句重新指出数组大小。 形式如下: ReDim 数组名(下标,下标2) As 类型 例:Private Sub S1(

15、 ) Dim x( ) As Single n =Inputbox(“输入n”) ReDim x(n) End Sub,3.动态数组,说明: Dim、Static、Public 声明语句是说明性语句,可出现在过程内或通用声明段;ReDim语句是执行语句,只能出现在过程内; 在过程中可多次使用ReDim来改变数组元素的个数 ReDim中的下标可以是常量,也可以是有了确定值的变量。如:n=InputBox(“输入n的值”) ReDim Arr(n) 静态数组在程序编译时分配存储单元,动态数组在运行时分配存储单元。,一维数组元素的引用,使用形式:数组名(下标) 其中:下标可以是常量、整型变量或表达式

16、。 例如:设有下面的数组A(10) 、B(10) As Integer 则下面的语句都是正确的。 A(1)=B(2)+B(1)+5 取数组元素运算 A(i)=B(i) 下标使用变量 A(i+2) = B(i+1) 下标使用表达式 注意:引用数组时不能下标越界,8-5-2 数组的基本操作,1.数组元素的引用,引用二维数组的形式: 数组名(下标1,下标2) 下标1指定元素在二维表中所在的行,下标2指定元素在二维表中所在的列。,例如: a(1,2)=10 a(i+2,j)a(2,3)*2 在程序中常常通过二重循环来操作使用 二维数组元素。,数组引用实例:,通过循环给数组元素的初值 For i = 1

17、 To 10 A数组的每个元素值为1 A(i)=1 Next i 数组的输入(通过InputBox( )函数) For i = 1 To 4 For j = 1 To 5 sc(i, j) = InputBox(输入sc( &i & , & j & ) 的值) Next j Next i,2.数组元素的输入,用户自定义数据类型也称为记录数据类型,它是在基本数据类型不能满足实际需要时,由用户以基本的数据类型为基础,按照一定的语法规则自定义而称的数据类型。 自定义类型的定义 Type 自定义类型名 元素名(下标) As 类型名 元素名(下标) As 类型名 End Type,8-5-3 自定义数据

18、类型,类型名:为标准类型 元素名:表示自定义类 型中的一个成员 下标:表示是数组,例如:以下定义了一个有关学生信息的自定义类型: Type Stud No As Integer 学号 Name As String * 20 姓名 Sex As String * 1 性别 Mark(1 To 4) As Single 4门课程成绩 Total As Single 总分 End Type,自定义类型变量的声明和使用 声明形式 Dim 变量名 As 自定义类型名 例:Dim Student As Stud 引用 形式:变量名.元素名 例:表示Student变量中的姓名,第4门课程的成绩: Student.Name=“张三” Student.Mark(4)=70,8-6-1 在VBA中执行宏 在VBA代码中,使用DoCmd对象的RunMacro方法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论