Access之VBA教程
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VBA VBA中允许不事先声明而直接使用变量,可以通过 中允许不事先声明而直接使用变量,可以通过 语句 Option Explicit Explicit,来要求所使用的变量必须 ,来要求所使用的变量必须 事先声明,否则VBA 事先声明,否则VBA会发出警告信息。 会发出警告信息。
下 面 是 一 个 简 单 的 程 序 , 其 使 用 的 变 量 a, b, Sum Sum都没有事先定义 都没有事先定义。 。 Private Sub Form_Click() Sum = 0 a = 10 b = 20 Sum = a + b Print "Sum=" "Sum="; ; Sum End Sub 良好的编程习惯应该是“ 良好的编程习惯应该是“先声明变量 先声明变量, ,后使用变 量”,这样做可以提高程序的效率, 这样做可以提高程序的效率,同时也使程序易 于调试。 于调试 。 VBA 中可以强制显式声明 中可以强制显式声明, ,可以在窗体模 块 、 标准模块和类模块的通用声明段中加入语句: Option Explicit
例如:"123" 例如:"123" + "456" 结果 "123456" "123" & "456" 结果 "123456"
使用上& 与+的区别:
例如: "abcdef" & 12345 结果为 "abcdef12345" abcdef12345" "123" & 456 "123" + 456 结果为 "123456" 结果为 579 "abcdef" +12345 结果为 出错
DoCmd 对象的常用方法(参照教材 对象的常用方法(参照教材P190 P190页) 页)
打开当前数据库中的“ 打开当前数据库中的“雇员 雇员” ”窗体 DoCmd.OpenForm "Employees" 在数据库窗口中选择“ 在数据库窗口中选择“雇员 雇员” ”窗体 DoCmd.SelectObject acForm," Employees ",True 在数据库窗口中关闭“ 在数据库窗口中关闭“雇员 雇员” ”窗体 DoCmd.Close acForm, “Employees”, acSaveYes 删除数据库中的“ 删除数据库中的“雇员” 雇员” 表 DoCmd.DeleteObject "Employees"
Const PI PI#= #=3 3.1415926
变量
变量是内存中的临时单元,存放在程 序执行过程中产生的中间结果和最后输出结果。 在程序中使用变量,就要给变量定义 名称及类型,即对变量进行声明。
变量命名规则
变量名必须以字母或汉字开头,后可跟字母、 汉字、数字或下划线组成(不能含有小数点和空 格),长度不超过255 格),长度不超过255个字符的字符串; 个字符的字符串; 不能使用VBA 不能使用VBA中的关键字; 中的关键字; VBA VBA中不区分变量名的大小写; 中不区分变量名的大小写; 变量名的最后一个字符可以是% 变量名的最后一个字符可以是%、&、!、 、!、# #、$ 等表示数据类型的声明符。 说明:常量名的命名规则与变量名的命名规则相同
视图Microsoft 视图Microsoft Access Access按钮:切换 按钮:切换Access Access 2000窗口 2000窗口 插入按钮:插入模块或过程 运行子过程/ 运行子过程/用户窗体按钮:运行模块中的程序 中断按钮:中断正在运行的程序 重新设置按钮:结束正在运行的程序 设置模式按钮:在设计模式和非设计模式之间切换 工程资源管理器按钮:用于打开工程资源管理器 属性窗口按钮:用于打开属性窗口 对象浏览器按钮:用于打开对象浏览器
符号常量
在程序中,某个常量多次被使用,则可以使用一 个符号来代替该常量,这样不仅在书写上方便,而且 有效地改进了程序的可读性和可维护性。 VBA VBA中使用关键字 中使用关键字Const Const 声明符号常量 声明符号常量。 。 其格式如下: Const 常量名 [类型符号]= 类型符号]=常数表达式 常数表达式 如:
长整型(Long) &
货币型 (Currency) 日期型(Date) 字符型(String) 字节型(Byte) 逻辑型(Boolean) 对象型(Object) 变体型(Variant)
@
8 8
$ 1 2 4
0~255 True或False 任何引用的对象
变量声明
用Dim| Static语句显式声明局部变量 Static语句显式声明局部变量 格式: 格式:Dim Dim 变量名 [AS 类型 类型] ] 或 Dim 变量名类型符 语句中的 语句中的“ “As 类型 类型” ”子句是可选的。如果 使用该子句,就可以定义变量的数据类型。未 使用,默认变量的类型为变体型( 使用,默认变量的类型为变体型(Variant Variant)。 )。
2.对象的属性、事件和方法 2.对象的属性、事件和方法
属性 属性描述了对象的自身性质。其格式为: 对象名 对象名. .属性= 属性=属性值 事件
事件是指可以发生在一个对象上且能够被该对象所 识别的动作。 如:单击某个命令按钮就产生该按钮的“ 如:单击某个命令按钮就产生该按钮的“单击 单击” ”事 件 当某个对象发生某一事件后,就会驱动系统去执行 预先编好的、与这一事件相对应的一段程序。
方法 方法是系统事先设计好的,可以完成一定 操作的特殊过程,是附属于对象的行为和动 作。在需要使用的时候可以直接调用。 其调用格式为: 对象名 对象名. .方法名
Access中除数据库的 Access中除数据库的7 7个对象外,还提供 一个重要的对象: 一个重要的对象:DoCmd DoCmd对象 对象 除窗体、控件的 除窗体、控件的SetFocus( SetFocus(获得控制焦点 获得控制焦点) ) 方法外,用得最多得是 DoCmd对象 DoCmd对象 的一些方 法。使用这些方法,可以在 法。使用这些方法,可以在VBA VBA中运行 中运行Access Access 的操作。
Static 声明:Static 声明的变量,也称为静态变量
。静态变量在程序运行过程中一直保留其值,即每次 调用过程,变量保持原来的值。
隐式声明变量 未进行上述的声明而直接使用变量,称 变量的 变量的隐式声明 隐式声明。采用隐式声明的变量都是 。采用隐式声明的变量都是 变体型( 变体型(Variant Variant )。 注意: 注意 :
关系运算符
将两个操作数进行大小比较,结果为逻辑值。 注意:字符串比较 注意:字符串比较, ,则按字符的 则按字符的ASCII ASCII码值从左到 码值从左到 右一一比较,直到出现不同的字符为止。
逻辑运算符
将操作数进行逻辑运算,结果是逻辑值
表达式ห้องสมุดไป่ตู้
组成 由变量、常量、函数等运算对象加上运算符、圆括 号组成的式子。 书写规则 (1) 运算符不能相邻。例a+ -b是错误的。 (2) 乘号不能省略。例x 乘以y 应写成:x*y。 (3) 括号必须成对出现,均使用圆括号。 (4) 表达式从左到右在同一基准上书写,无高低。 运算优先级 算术运算符>连接运算符>关系运算符>逻辑运算
VBA VBA的数据类型 的数据类型
数据类型
整型(Integer) 单精度浮点型 (Single) 双精度浮点型 (Double)
类型声明符
% ! #
存储空间
2 4 4 8
取值范围
-32768~32767 -2147483648~2147483647 负数:-3.402823E38~-1.401298E1.401298E-45 正数: 1.401298E 1.401298E-45~3.402823E38 负数:-1.79769313486232E308~4.94065645841247E4.94065645841247E-324 正数:4.94065645841247E4.94065645841247E-324~ 1.79769313486232E308 -922337203685477.5808~ 922337203685477.5807 100年1月1日~9999年12月31日 0字符~65400个字符
例如:Dim 例如:Dim i As integer, s 表示声明了一个名为i 表示声明了一个名为i的整型变量和一个名为 的整型变量和一个名为s s 的变体型变量。
关键字 关键字Dim Dim或 或Static的区别: Static的区别: Dim 声明:随过程的调用而分配存贮单元,每次
调用都对变量初始化;过程体结束,变量的内容自动 消失,存储单元释放。
第8章 VBA编程入门 VBA 编程入门
内容提要
8-1 VBA VBA概念 概念 8-2 VBA VBA编程基础 编程基础 8-3 8-4 8-5 8-6 8-7 VBA VBA常用语句 常用语句 VBA VBA程序流程控制 程序流程控制 数组 VBA VBA与宏 与宏 小结及练习
8-1 VBA VBA概述 概述
VBE编程环境 VBE 编程环境
工程窗口 -选择对象
选择 事件
属性窗口 -选择对象 的属性
代码 窗口
8-2 VBA VBA编程基础 编程基础
8-2-1 常量、变量 VBA使用常量、变量来存储值。用来保存 VBA使用常量、变量来存储值。用来保存 在程序运行期间数据。 常量:在程序运行中其存储的值不会改变。 变量:在程序运行中其值可以改变。
docmd对象的常用方法参照教材docmd对象的常用方法参照教材p190p190页页打开当前数据库中的雇员打开当前数据库中的雇员窗体窗体docmdopenformemployeesdocmdopenformemployees在数据库窗口中选择雇员在数据库窗口中选择雇员窗体窗体docmdselectobjectacformdocmdselectobjectacformemployeesemployeestruetrue在数据库窗口中关闭雇员在数据库窗口中关闭雇员窗体窗体docmdcloseacformdocmdcloseacformemployeesemployeesacsaveyesacsaveyes删除数据库中的删除数据库中的雇员雇员表表docmddeleteobjectemployeesdocmddeleteobjectemployees例例8811新建一个窗体并添加两个命令按钮新建一个窗体并添加两个命令按钮运行窗体后单击第一个按钮新式一个消运行窗体后单击第一个按钮新式一个消息框
例8-1 新建一个窗体并添加两个命令按钮, 运行窗体后,单击第一个按钮,新式一个消 息框;单击第二个按钮,退出当前窗体。 (参照教材 (参照教材P191 P191页) 页) 通过此例,体会可视化编程、面向对象 、事件过程、应用方法等基本概念。
8-1-3 VBA VBA编程环境 编程环境
进入 进入VBE VBE编程环境 编程环境 VBE VBE窗口的组成 窗口的组成
常量
在程序运行过程中,其值 在程序运行过程中,其值不会被改变 不会被改变的量称 的量称 为常量。在 为常量。在VBA VBA中有三类常量: 中有三类常量: 直接常量
如:10,20%, 123.0, “AB”,“VBA程序设计” 等
符号常量 系统常量
指VBA系统预先定义好的,用户可以直接引用的量。 如:acForm,acQuery,vbOk,vbRed
VBE VBE窗口由工具栏、工程资源管理器窗口、 窗口由工具栏、工程资源管理器窗口、 属性窗口、代码窗口和立即窗口组成。
在VBE VBE环境中编写 环境中编写VBA VBA代码 代码
标准工具条
Microsoft Accsee 运行子过程/用户窗体 重新设计 工程资源管理器 对象浏览器
插入模块
中断 设计模式 属性窗口
变量的初始化
声明而未赋值的变量的值为: 数值型变量初始化为 数值型变量初始化为0 0; 字符型变量为零长度字符串; 变体型变量初始化为 Empty。 Empty。
8-2-3 运算符和表达式(教材 运算符和表达式(教材P199 P199页) 页)
运算符
算术运算符
连接运算符: & 、+(字符串连接)
8-1-1 VBA VBA简介 简介 VBA(Visual Basic for Application) 是Microsoft Office Office系列软件的内置编 系列软件的内置编 程语言,其语法结构与 程语言,其语法结构与Visual Visual Basic Basic编 编 程语言互相兼容,采用的是面向对象的 编程机制和可视化的编程环境。
8-2-2 数据类型与变量的声明 在VBA VBA中,数据类型用来决定变量 中,数据类型用来决定变量 可以保存何种数据。 可以保存何种数据。VBA VBA支持多种数据 支持多种数据 类型,为用户编程提供了方便。
参照教材 参照教材P196 P196页表 页表8 8-1 VBA的数据类型 VBA的数据类型
8-1-2 面向对象程序设计的基本概念
1. 集合和对象 VBA VBA中的应用程序是由许多对象组成的,如 中的应用程序是由许多对象组成的,如 表、窗体、查询等。对象是帮助构造应用程序 的元素,以特定的方式组织这些对象,就形成 了应用程序。 数据库窗口把可供选择的对象排列在一起, 形成不同的类。
下 面 是 一 个 简 单 的 程 序 , 其 使 用 的 变 量 a, b, Sum Sum都没有事先定义 都没有事先定义。 。 Private Sub Form_Click() Sum = 0 a = 10 b = 20 Sum = a + b Print "Sum=" "Sum="; ; Sum End Sub 良好的编程习惯应该是“ 良好的编程习惯应该是“先声明变量 先声明变量, ,后使用变 量”,这样做可以提高程序的效率, 这样做可以提高程序的效率,同时也使程序易 于调试。 于调试 。 VBA 中可以强制显式声明 中可以强制显式声明, ,可以在窗体模 块 、 标准模块和类模块的通用声明段中加入语句: Option Explicit
例如:"123" 例如:"123" + "456" 结果 "123456" "123" & "456" 结果 "123456"
使用上& 与+的区别:
例如: "abcdef" & 12345 结果为 "abcdef12345" abcdef12345" "123" & 456 "123" + 456 结果为 "123456" 结果为 579 "abcdef" +12345 结果为 出错
DoCmd 对象的常用方法(参照教材 对象的常用方法(参照教材P190 P190页) 页)
打开当前数据库中的“ 打开当前数据库中的“雇员 雇员” ”窗体 DoCmd.OpenForm "Employees" 在数据库窗口中选择“ 在数据库窗口中选择“雇员 雇员” ”窗体 DoCmd.SelectObject acForm," Employees ",True 在数据库窗口中关闭“ 在数据库窗口中关闭“雇员 雇员” ”窗体 DoCmd.Close acForm, “Employees”, acSaveYes 删除数据库中的“ 删除数据库中的“雇员” 雇员” 表 DoCmd.DeleteObject "Employees"
Const PI PI#= #=3 3.1415926
变量
变量是内存中的临时单元,存放在程 序执行过程中产生的中间结果和最后输出结果。 在程序中使用变量,就要给变量定义 名称及类型,即对变量进行声明。
变量命名规则
变量名必须以字母或汉字开头,后可跟字母、 汉字、数字或下划线组成(不能含有小数点和空 格),长度不超过255 格),长度不超过255个字符的字符串; 个字符的字符串; 不能使用VBA 不能使用VBA中的关键字; 中的关键字; VBA VBA中不区分变量名的大小写; 中不区分变量名的大小写; 变量名的最后一个字符可以是% 变量名的最后一个字符可以是%、&、!、 、!、# #、$ 等表示数据类型的声明符。 说明:常量名的命名规则与变量名的命名规则相同
视图Microsoft 视图Microsoft Access Access按钮:切换 按钮:切换Access Access 2000窗口 2000窗口 插入按钮:插入模块或过程 运行子过程/ 运行子过程/用户窗体按钮:运行模块中的程序 中断按钮:中断正在运行的程序 重新设置按钮:结束正在运行的程序 设置模式按钮:在设计模式和非设计模式之间切换 工程资源管理器按钮:用于打开工程资源管理器 属性窗口按钮:用于打开属性窗口 对象浏览器按钮:用于打开对象浏览器
符号常量
在程序中,某个常量多次被使用,则可以使用一 个符号来代替该常量,这样不仅在书写上方便,而且 有效地改进了程序的可读性和可维护性。 VBA VBA中使用关键字 中使用关键字Const Const 声明符号常量 声明符号常量。 。 其格式如下: Const 常量名 [类型符号]= 类型符号]=常数表达式 常数表达式 如:
长整型(Long) &
货币型 (Currency) 日期型(Date) 字符型(String) 字节型(Byte) 逻辑型(Boolean) 对象型(Object) 变体型(Variant)
@
8 8
$ 1 2 4
0~255 True或False 任何引用的对象
变量声明
用Dim| Static语句显式声明局部变量 Static语句显式声明局部变量 格式: 格式:Dim Dim 变量名 [AS 类型 类型] ] 或 Dim 变量名类型符 语句中的 语句中的“ “As 类型 类型” ”子句是可选的。如果 使用该子句,就可以定义变量的数据类型。未 使用,默认变量的类型为变体型( 使用,默认变量的类型为变体型(Variant Variant)。 )。
2.对象的属性、事件和方法 2.对象的属性、事件和方法
属性 属性描述了对象的自身性质。其格式为: 对象名 对象名. .属性= 属性=属性值 事件
事件是指可以发生在一个对象上且能够被该对象所 识别的动作。 如:单击某个命令按钮就产生该按钮的“ 如:单击某个命令按钮就产生该按钮的“单击 单击” ”事 件 当某个对象发生某一事件后,就会驱动系统去执行 预先编好的、与这一事件相对应的一段程序。
方法 方法是系统事先设计好的,可以完成一定 操作的特殊过程,是附属于对象的行为和动 作。在需要使用的时候可以直接调用。 其调用格式为: 对象名 对象名. .方法名
Access中除数据库的 Access中除数据库的7 7个对象外,还提供 一个重要的对象: 一个重要的对象:DoCmd DoCmd对象 对象 除窗体、控件的 除窗体、控件的SetFocus( SetFocus(获得控制焦点 获得控制焦点) ) 方法外,用得最多得是 DoCmd对象 DoCmd对象 的一些方 法。使用这些方法,可以在 法。使用这些方法,可以在VBA VBA中运行 中运行Access Access 的操作。
Static 声明:Static 声明的变量,也称为静态变量
。静态变量在程序运行过程中一直保留其值,即每次 调用过程,变量保持原来的值。
隐式声明变量 未进行上述的声明而直接使用变量,称 变量的 变量的隐式声明 隐式声明。采用隐式声明的变量都是 。采用隐式声明的变量都是 变体型( 变体型(Variant Variant )。 注意: 注意 :
关系运算符
将两个操作数进行大小比较,结果为逻辑值。 注意:字符串比较 注意:字符串比较, ,则按字符的 则按字符的ASCII ASCII码值从左到 码值从左到 右一一比较,直到出现不同的字符为止。
逻辑运算符
将操作数进行逻辑运算,结果是逻辑值
表达式ห้องสมุดไป่ตู้
组成 由变量、常量、函数等运算对象加上运算符、圆括 号组成的式子。 书写规则 (1) 运算符不能相邻。例a+ -b是错误的。 (2) 乘号不能省略。例x 乘以y 应写成:x*y。 (3) 括号必须成对出现,均使用圆括号。 (4) 表达式从左到右在同一基准上书写,无高低。 运算优先级 算术运算符>连接运算符>关系运算符>逻辑运算
VBA VBA的数据类型 的数据类型
数据类型
整型(Integer) 单精度浮点型 (Single) 双精度浮点型 (Double)
类型声明符
% ! #
存储空间
2 4 4 8
取值范围
-32768~32767 -2147483648~2147483647 负数:-3.402823E38~-1.401298E1.401298E-45 正数: 1.401298E 1.401298E-45~3.402823E38 负数:-1.79769313486232E308~4.94065645841247E4.94065645841247E-324 正数:4.94065645841247E4.94065645841247E-324~ 1.79769313486232E308 -922337203685477.5808~ 922337203685477.5807 100年1月1日~9999年12月31日 0字符~65400个字符
例如:Dim 例如:Dim i As integer, s 表示声明了一个名为i 表示声明了一个名为i的整型变量和一个名为 的整型变量和一个名为s s 的变体型变量。
关键字 关键字Dim Dim或 或Static的区别: Static的区别: Dim 声明:随过程的调用而分配存贮单元,每次
调用都对变量初始化;过程体结束,变量的内容自动 消失,存储单元释放。
第8章 VBA编程入门 VBA 编程入门
内容提要
8-1 VBA VBA概念 概念 8-2 VBA VBA编程基础 编程基础 8-3 8-4 8-5 8-6 8-7 VBA VBA常用语句 常用语句 VBA VBA程序流程控制 程序流程控制 数组 VBA VBA与宏 与宏 小结及练习
8-1 VBA VBA概述 概述
VBE编程环境 VBE 编程环境
工程窗口 -选择对象
选择 事件
属性窗口 -选择对象 的属性
代码 窗口
8-2 VBA VBA编程基础 编程基础
8-2-1 常量、变量 VBA使用常量、变量来存储值。用来保存 VBA使用常量、变量来存储值。用来保存 在程序运行期间数据。 常量:在程序运行中其存储的值不会改变。 变量:在程序运行中其值可以改变。
docmd对象的常用方法参照教材docmd对象的常用方法参照教材p190p190页页打开当前数据库中的雇员打开当前数据库中的雇员窗体窗体docmdopenformemployeesdocmdopenformemployees在数据库窗口中选择雇员在数据库窗口中选择雇员窗体窗体docmdselectobjectacformdocmdselectobjectacformemployeesemployeestruetrue在数据库窗口中关闭雇员在数据库窗口中关闭雇员窗体窗体docmdcloseacformdocmdcloseacformemployeesemployeesacsaveyesacsaveyes删除数据库中的删除数据库中的雇员雇员表表docmddeleteobjectemployeesdocmddeleteobjectemployees例例8811新建一个窗体并添加两个命令按钮新建一个窗体并添加两个命令按钮运行窗体后单击第一个按钮新式一个消运行窗体后单击第一个按钮新式一个消息框
例8-1 新建一个窗体并添加两个命令按钮, 运行窗体后,单击第一个按钮,新式一个消 息框;单击第二个按钮,退出当前窗体。 (参照教材 (参照教材P191 P191页) 页) 通过此例,体会可视化编程、面向对象 、事件过程、应用方法等基本概念。
8-1-3 VBA VBA编程环境 编程环境
进入 进入VBE VBE编程环境 编程环境 VBE VBE窗口的组成 窗口的组成
常量
在程序运行过程中,其值 在程序运行过程中,其值不会被改变 不会被改变的量称 的量称 为常量。在 为常量。在VBA VBA中有三类常量: 中有三类常量: 直接常量
如:10,20%, 123.0, “AB”,“VBA程序设计” 等
符号常量 系统常量
指VBA系统预先定义好的,用户可以直接引用的量。 如:acForm,acQuery,vbOk,vbRed
VBE VBE窗口由工具栏、工程资源管理器窗口、 窗口由工具栏、工程资源管理器窗口、 属性窗口、代码窗口和立即窗口组成。
在VBE VBE环境中编写 环境中编写VBA VBA代码 代码
标准工具条
Microsoft Accsee 运行子过程/用户窗体 重新设计 工程资源管理器 对象浏览器
插入模块
中断 设计模式 属性窗口
变量的初始化
声明而未赋值的变量的值为: 数值型变量初始化为 数值型变量初始化为0 0; 字符型变量为零长度字符串; 变体型变量初始化为 Empty。 Empty。
8-2-3 运算符和表达式(教材 运算符和表达式(教材P199 P199页) 页)
运算符
算术运算符
连接运算符: & 、+(字符串连接)
8-1-1 VBA VBA简介 简介 VBA(Visual Basic for Application) 是Microsoft Office Office系列软件的内置编 系列软件的内置编 程语言,其语法结构与 程语言,其语法结构与Visual Visual Basic Basic编 编 程语言互相兼容,采用的是面向对象的 编程机制和可视化的编程环境。
8-2-2 数据类型与变量的声明 在VBA VBA中,数据类型用来决定变量 中,数据类型用来决定变量 可以保存何种数据。 可以保存何种数据。VBA VBA支持多种数据 支持多种数据 类型,为用户编程提供了方便。
参照教材 参照教材P196 P196页表 页表8 8-1 VBA的数据类型 VBA的数据类型
8-1-2 面向对象程序设计的基本概念
1. 集合和对象 VBA VBA中的应用程序是由许多对象组成的,如 中的应用程序是由许多对象组成的,如 表、窗体、查询等。对象是帮助构造应用程序 的元素,以特定的方式组织这些对象,就形成 了应用程序。 数据库窗口把可供选择的对象排列在一起, 形成不同的类。