




免费预览已结束,剩余35页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章VBA模块 第10章VBA模块 主要内容模块及相关的概念VBA以及程序的组成VBA代码的调试方法VBA程序错误处理方法 Access具有强大的界面功能 这使得用户能够方便地建立各种对象 尤其是利用宏已经可以执行简单的任务 如对象的修改和数据的查找 但在某些情况下 用户需要利用模块提供的强大功能 完成更难的任务 模块及相关的概念 模块的概念 模块是和数据表 查询 报表 宏等一样 是Access中的一种对象 模块是由一种叫做VBA VisualBasicforApplication 的语言来实现的 VBA是微软公司将VisualBasic的一部分代码结合到OFFICE中而形成的 模块是存储在一个单元中的VBA声明和过程的集合 模块的主要功能 维护数据库 可以将事件过程创建在窗体或报表的定义中 更有利于数据库的维护 创建自定义函数 使用这些自定义的函数就可以避免写复杂的表达式 显示详细的错误提示 可以检测错误并进行显示 这样就有更好的用户界面 对用户的下一步操作进行帮助 执行系统级的操作 可以对系统中文件进行处理 使用动态数据交换 DDE 应用Windows系统函数和数据通讯 模块的分类 模块有两种 类模块和标准模块 1 类模块是包含类的定义的模块 包含其属性和方法的定义 类模块有三种基本形式 窗体类模块 报表类模块和自定义类模块 它们各自与某一窗体或报表相关联 为窗体 或报表 创建第一个事件过程时 Access将自动创建与之关联的窗体或报表模块 单击窗体 或报表 设计 视图中工具栏上的 代码 命令 可以查看窗体 或报表 的模块 模块的分类 2 标准模块包含在数据库窗口的模块对象列表中 标准模块包括有通用过程和常用过程 这些过程不与Access数据库文件中的任何对象相关联 也就是说 如果控件没有恰当的前缀 这些过程没有指向Me 当前对象 或控件名的引用 但可以在数据库中任何其他对象中引用标准模块中的过程 模块的组成 通常 模块是由以下两部分组成 第一部分是声明部分 可以在这部分定义变量 常量 自定义类型和外部过程 在模块中 声明部分与过程部分是分割开来的 声明部分中设定的常量和变量是全局性的 可以被模块中的所有过程调用 第二部分是事件过程部分 这是一种自动执行的过程 用来对用户或程序代码启动的事件或系统触发的事件做出响应 包括函数和过程 过程 过程是用VBA语言的声明和语句组成的单元 作为一个命名单位的程序段 它可以包含一系列执行操作或计算值的语句和方法 一般使用的过程有两种类型 Sub 子程序 过程和Function 函数 过程 1 Sub过程 Sub过程是执行一系列操作的过程 在执行完成后不返回任何值 是能执行特定功能的语句块 Sub过程可以被置于标准模块和类模块中 声明Sub过程的语法形式如下 Public Private Static Sub子程序名 As数据类型 ExitSub EndSub 2 Function过程 Function过程又称为函数 也是能执行特定功能的语句块 函数也是一种过程 在VBA中 提供了大量的内置函数 编程时可以直接引用 但有时需要按自己的要求定义函数 不过它是一种特殊的 能够返回值的Function过程 有没有返回值 是Sub过程和Function过程之间最大的区别 声明函数的语法形式如下 Public Private Static Function函数名 As数据类型 As数据类型 函数名 ExitFunction 函数名 EndFunction VB开发环境 VBA开发环境可以用于创建和编辑VBA程序 也可以用于编辑已录制的宏和编写新宏 模块代码 工程资源管理器 模块属性 VBA主窗口 VBA编程基础 数据类型VBA一般用变量保存计算的结果 设置属性 指定方法的参数以及在过程间传递数值 为了高效率地执行 VBA为变量定义了一个数据类型的集合 在Access里 很多地方都要指定数据类型 包括过程中的变量 定义表和函数的参数等 数据类型 VBA的数据类型可以分为数值数据类型 布尔数据类型 日期数据类型 字符数据类型 对象数据类型 变体数据类型和用户自定义数据类型 各种数据类型所占用的存储空间 所表示的数据范围大小 以及支持的数据运算不同 数据类型 一 数值数据类型VBA中数值数据类型包括字节 整型 长整型 单精度 双精度 货币等 数据的存储从8位到96位不等 数据支持加 减 乘 除等运算 货币类型的数据保持小数点左边15位数字 右边4位数字 以满足精度的需要 二 布尔数据类型布尔数据类型以16位数字形式存储 布尔数据类型只有True和False两个值 布尔数据支持逻辑或 与 非等运算 当其他数值类型转化为布尔型时 0转化为False 其它值均转化为True 当布尔型转化为其他数值类型时 False转化为0 True转化为1 三 日期数据类型日期数据类型以64位浮点数值形式存储 日期数据类型表示的范围为100年1月1日直到9999年12月31日 时间从0 00 00到23 59 59 日期变量根据计算机中的短日期格式显示 时间则根据计算机的时间格式显示 当其他数值类型转化为时间类型时 整数部分表示日期 小数部分表示时间 负整数表示1899年12月31日前的日期 四 字符数据类型型每个字符以一个字节 8位 进行表示 对应的数值范围是0到255 字符集中的前128个字符对应于ASCII字符集中的定义 字符集的后128个字符代表特定的字符 字符数据类型有两种 变长字符和定长字符 变长字符可以包括的字符数量为0到大约20亿个 定长字符可以包括的字符数量为包括1到大约64K个字符 五 对象数据类型对象变量以32位的指向对象的地址形式进行存储 使用Set语句声明成Object的变量可以包含任何对象的引用 也可以将对象引用指向特定类生成的实例对象 这样可以实现早期绑定 六 变体数据类型变体数据类型的变量所代表的数据类型不是确定的 可以成为任何类型的变量 变体数据类型的变量可以存储特殊值 如 Empty Error Nothing Null等 变体数据类型中的数值类型可以代表任何整型或实型数 七 自定义数据类型使用Type语句 可以定义任何结构型数据类型 例如 Type人员姓名AsString出生日期AsDate性别AsStringEndType以上定义了 人员 这种数据类型 包括 姓名 生日 性别 三个数据域 变量 变量是指在程序运行过程期间其值可以变化的量 在VBA代码中声明和使用指定的变量来存储值 计算结果或操作数据库中的任意对象 1 变量名必须以英文字母开头 2 变量名不能包含空格 句点等字符 3 变量名的长度不能超过255个字符 且变量名不区分大小写 4 不能在某一范围内的相同层次中使用重复的变量名 5 变量的名字不能是VBA的关键字 变量名命名原则 声明变量 1 语法 Dim变量名 As数据类型 Static变量名 As数据类型 Public变量名 As数据类型 Private变量名 As数据类型 2 说明 其中Dim等是关键字 说明这个语句是变量的声明语句 如果没有 As数据类型 子句 则默认该变量为变体 Variant 类型 数组变量 可以用一个数组来表示一组具有相同数据类型的值 定义了数组之后 可以引用整个数组 也可以只引用数组的个别元素 数组变量的声明语句对数组变量进行声明 可以使用Dim语句 其格式为 Dim数组名 数组下标上限 As数据类型 注意 默认的数组元素的下标下限值为0 常量 常量是指在程序运行过程中始终固定不变的量 VBA的常量包括数值常量 字符常量 日期常量 符号常量 固定常量和系统定义常量等 系统定义常量有三个 True False和Null 固有常量是Access自动定义的常量 所有固有常量都可以在宏或VBA代码中使用 通常 固有常量通过前两个字母来指明定义该常量的对象库 来自Access的常量以 ac 开头 来自VB库的常量则以 vb 开头 可以使用 对象浏览器 来查看所有对象库中的固有常量列表 VBA常用语句 1 基本语句 一 声明语句 声明语句的功能是声明变量 常量或数据类型 声明语句的位置通常在模块 函数或过程的开始处 声明语句的语法应按照我们在上一讲所学的有关变量 常量等的说明进行 赋值语句 1 语法 Let变量名 值 或表达式 Set变量名 值 或表达式 2 说明 赋值语句用于指定变量为某个值或为某个表达式 用Let语句赋值 对应的是原子数据类型 Let通常还可以省略 用Set语句赋值 对应的是复杂数据类型 可以是用户自定义的数据类型或对象类型的数据 二 If Then Else语句1 语法 If条件表达式Then语句1 Else语句2 Endif2 说明 其中If和EndIf括定了条件语句的开始和结束 判断条件表达式 如果为True 则执行语句1 否则执行语句2 三 For Next语句1 语法 For变量 始值To终值 Step步长 循环体语句ExitFor循环体语句Next 2 说明 其中For和Next括定了循环开始和结束 其中变量是循环变量 从始值循环到终值 开始循环时 将变量值与终值进行比较 如果符合循环条件 就会执行循环体语句 当所有循环中的语句都执行后 步长值会加到变量中 此时 再对循环条件进行判断 循环中的语句可能会再次执行 也可能是退出循环并从Next语句之后的语句继续执行 ExitFor语句可以出现在循环中任意多次 以退出循环 循环条件 步长参数值决定循环条件 step正数或0 counter end 三 其它可执行语句 可执行语句是VBA的重要部分 我们刚才所介绍的赋值 条件 循环语句都是可执行语句 可执行语句还包括初始化操作 执行对象的方法或属性的改变信息的提示等 如果有兴趣大家可以自行学习 四 注释语句 注释语句可以说明一个程序段的功能 从而提高了程序的可读性 也可以将某部分程序加以注释 可以避免再次的程序输入工作 从而提高了效率 第一种方法是用 进行注释 如 这是一个注释语句第二种方法是用Rem进行注释 如 Rem这是一个注释语句 事件过程的说明 打开 数据库 窗口 选择 窗体 对象 然后以设计视图打开要设置事件过程的窗体 选中要设置事件的 进入 按钮 单击鼠标右键 选择 事件生成器 命令 此时会弹出一个 选择生成器 对话框 选择 代码生成器 单击 确认 按钮 此时屏幕上会弹出一个代码编辑窗口 在其中输入事件过程即可 另一种进行事件过程设置的方法是 在VBA开发环境的 工程资源管理器 中 展开类对象 选择要修改的报表 然后可以在它的 模块代码 部分中输入所需的代码 运行VisualBasic程序 VisualBasic程序的执行有两种方式 第一种方式是直接执行 第二种方式是调试执行 直接执行的含义是程序按照预先编写的顺序执行 直到所有程序执行完毕或遇到断点将程序的执行打断 调试执行的方式是按照程序的顺序 在人工的干预下执行 程序的执行随时可以被打断 直接执行的方式一般是在使用数据库时运行 而使用调试执行的方式是为了排除错误 应用实例 例 带有注释和赋值语句的过程Rem这是一个接受键入和显示信息的过程SubSninput DimstuNameAsString gradeAsSingle 声明stuname 姓名 和grade 成绩 两个变量grade 80 5 为变量grade赋值stuName InputBox 请输入姓名 Rem输入姓名 InputBox函数给出提示 并接受键入值 InputBox函数的返回值赋给变量stuNameMsgBox 姓名 stuName 成绩 gradeRem显示学生姓名和成绩EndSub 例如 输入学生成绩 并根据成绩划分等级 成绩大于等于90分为优秀 成绩低于90分且大于等于60分为 达标 成绩低于60分为 不达标 SubSgrade DimstuscaleAsString gradeAsSinglegrade InputBox 请输入成绩 Ifgrade 90Thenstuscale 优秀 ElseIfgrade 60Thenstuscale 达标 Elsestuscale 不达标 EndIfMsgBox 成绩等级为 stuscaleEndSub 应用实例 例 在如图所示的窗体上的标题为 注册 的命令按钮的 单击 事件的设置 事件程序代码如下 PrivateSubCommand4 Click DimdbAsObjectDimresetAsObjectSetdb CurrentDb Setreset db OpenRecordset 用户表 reset AddNewreset username Text0 Value
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生物化学模拟习题(含参考答案)
- 消控员证书题目及答案
- 2025房屋租赁合同的基本协议
- 曹阳二中分班考试试卷及答案
- 2025港口物流运输合同
- 藏医解剖技术考试题库及答案
- 2025终止的工程承包合同
- 仓管员的入职考试题目及答案
- 2025年基层眼科试题及答案解析
- 2025建筑工程合同样本
- 《油井工程课件:钻井技术培训》
- 2024年秋新仁爱科普版七年级上册英语第1~6单元高频率常用常考动词100个
- 《手术室感染与预防》课件
- 医院美容科管理规章制度(3篇)
- 第四届全国冶金矿山行业职业技能竞赛(磨矿分级工)理论参考试题库(含答案)
- 皮肤镜课件教学课件
- 2024至2030年中国军工压缩机行业投资前景及策略咨询研究报告
- 民乐社团活动计划
- 反诈知识竞赛题库及答案(共286题)
- 2024年新农村雨污分流建设合同
- 副立井罐笼更换提升机钢丝绳专项安全风险辨识评估标准
评论
0/150
提交评论