




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章学习使用VBA 超级货架 什么是VBA 内部结构 VBA程序的基本语法与书写格式 增加内涵 功能模块的创建 兢兢业业 VBA程序的调试典型实例 给 考勤管理系统 添加功能代码 1 7 1 超级货架 什么是VBA VBA VisualBasicforApplication 是MicrosoftOffice系列的内置编程语言 其功能十分强大 在Access2007中 VBA的功能是通过模块来实现的 事实上 在Access2007中 程序设计的核心工作就是编写模块和事件过程 如下图所示为Access2007中VBA程序的编写界面 2 功能模块 属性窗格 3 7 2 内部结构 VBA程序的基本语法与书写格式 7 2 1变量和常量 在任何编程语言中 都要用到变量和常量 它们都是用来存储数据的 变量存储的是经常需要变动的数据 常量储存的是不用改变的数据 或对象 1 变量 变量在引用之前必须被声明 声明一个变量就是事先将变量的有关信息告诉程序 声明变量要使用Dim语句 其语法格式为 4 DimStr1AsString 声明一个名为Str1的字符串变量Str1 Hello 给变量赋值Str1 Goodbye 改变变量的值 Dim变量名 As类型 以上语句中的 As类型 子句是可选的 如果选择了该子句 就可以定义变量的数据类型或对象类型 例如以下语句 5 2 常量 在VBA中 声明常量的语法格式为 Const常量名 As类型 表达式 在这个表达式中 常量名 的命名规则同变量一样 语句中的 表达式 是由数值常量和字符串常量以及运算符组成的 例如 PublicConstPI 3 1415926 声明一个在整个程序中都能使用的常量PI 6 7 2 2流程控制语句 程序员最基本和最重要的工作就是告诉计算机何时要做出什么样的动作 就像一个交通警察指挥大量的车辆和行人何时该走 何时该停 该向哪边走一样 本节主要介绍If语句 SelectCase语句 Do Loop语句 For Next语句 GoTo语句以及With语句等流程控制语句 下面我们分开详细介绍 7 1 If语句 If语句是我们最常用的一种分支语句 它符合人们通常的语言习惯和思维习惯 比如if 如果 绿灯亮是真 then 那么 车就可以通行 else 否则 车辆要等待行人通过 If语句有三种语法形式 1 最简单的形式 ifthen 8 2 带有else的形式 ifthenelseendif 9 ifthenelseifthen elseendif 3 带有多重条件的形式 10 2 SelectCase语句 根据表达式的值 来决定执行多组语句中的哪一组 这就是SelectCase语句 它的语法如下 SelectCase表达式 Case表达式列表1 语句陈述1 Case表达式列表2 语句陈述2 Case表达式列表n 语句陈述n EndSelect 11 下面的实例可以使我们进一步了解SelectCase语句的用法 DimScoreAsIntegerSelectCaseScoreCaseIs 90MsgBox YougotanAonthetest Case80To89MsgBox YougotaBonthetest Case60To79MsgBox YougotaConthetest CaseElseMsgBox Youfailed EndSelect 在此例子中 Case语句按照先后顺序进行比较 首先执行与第一个Case条件相匹配的代码 若不存在匹配的条件 则执行CaseElse语句 然后程序将执行EndSelect语句后面的代码 12 3 Do Loop语句 用Do Loop语句可以定义要多次执行的语句块 我们也可以定义一个条件 当这个条件为假时 就结束这个循环 Do Loop语句有以下两种形式 第1种 Do While Until ExitDo Loop 13 第2种 Do ExitDo Loop While Until 上面格式中 是用来检查真 非零 或假 零或Null 的一个比较谓词或表达式 While子句和Until子句的作用正好相反 如果指定了一个While子句 则当是真 就继续执行 如果指定了Until子句 则当为真时 循环执行结束 14 4 For Next语句 按照指定次数来重复执行同一组语句 这就是For Next语句 在事先不知道循环需要执行多少次时 应该使用Do循环 而事先知道要执行多少次时 最好使用For Next语句 For Next语句的语法格式为 For循环控制变量 初值To终值Step步长循环语句Next 15 其中 Step步长 可以省略 省略时步长为1 循环控制变量可以为整型 长整型 实型以及字符串 但最常用的还是整型和长整型 在循环中可以通过ExitFor跳出循环体 下面的例子说明了For Next语句的使用方法 Fori 1To100Step2Score Score 10Next 上边语句的意义是 将初值赋予循环控制变量 即循环控制变量的值从1开始 在执行完一次循环体后 将循环控制变量加上步长2 当i的值大于100时 跳出循环 16 是一个逻辑表达式 if语句通过检查的真或假来进行语句判断 比如 若为True 真 则执行紧接在关键字Then后面的一条或多条语句 若为False 假 则无论接下来是什么语句 程序都检查下一个Else或执行Else关键字后面的语句 17 6 With语句 在引用对象的时候 我们通常会感到冗长的对象限定 繁琐而又累赘 如果你喜欢简单 那么用With可以简化代码中对复杂对象的引用 可以用With语句建立一个 基本 对象 然后用一个速记符号来引用这个对象上的对象 集合 属性或方法 With EndWith 18 例如 下面的代码来自一个Access窗体 它设置了一个组件框控件的 可见性 属性 并调用了该组件框的两个方法 WithMe cboAuthorSearchList Visible True 设置为可见 Dropdown 点击下拉菜单EndWith 19 7 2 3过程与函数 简单地讲 过程和函数就是指能够执行特定功能的语句块 都是为编写程序而服务的 但是它们之间是有区别的 1 过程 过程是VBA代码的一个单元 它包括一系列用于执行某个任务或是进行某种计算的语句 过程只执行一个或多个操作 没有返回值 比如下面就是一个过程的例子 20 SubcmdSmallFont Click WithSelection Font Name Arial Size 16EndWithEndSub 上面列出的代码就是一个简单的过程 实际上在With下的所有操作 默认访问的都是cmdSmallFont对象 通常用Sub声明一个新的过程 其语法格式如下 21 Private Public Friend Static Subname arglist statementsEndSub 各项的意义请参考书中表格7 1 22 2 函数 函数其实也是过程 不过它是一种特殊的 能够返回具体值的过程 返回的值通常是计算的结果或测试的结果 能够在表达式中使用 用Function语句可以声明一个新函数 其语法形式如下 Public Private Friend Static Functionname arglist Astype statements name expression ExitFunction EndFunction 各项的意义请参考书中表格7 2 23 7 2 4注释语句 注释语句就是穿插在程序代码中并对代码的意义和功能进行说明的语句 它不参与程序的运行 在VBA程序中 添加注释可以通过两种方式来实现 一是使用Rem语句 二是使用 符号 DimMystr1 Mystr2Mystr1 Welcome Rem为Mystr1赋值 Mystr2 Goodbye 为Mystr2赋值 这也是一条注释 无需使用冒号 Rem注释 在语句之后要用冒号隔开 24 7 2 5语句的连写和换行 DimMyNOAsStringMyNo 2002091229 可以写成下面的一行 DimMyNoAsString MyNo 2002091229 一般而言 程序语句都是一句一行 但是有些时候可能需要在一行中连写几句代码 这时需要用冒号 来分开这些不同用途的语句 例如 25 另外 还有一种情况在编程中经常遇到 那就是程序代码过长 虽然一行能够写完 但是书写起来不方便 看上去也不美观 希望将这句代码分开写成几行 这时要用到空格加下划线 比如下面的例子 PublicConstDate 1 1 2000 Author Nancy Tel 62774059 空格加下划线 被称为续行号 它可以把语句分成两行或多行 用于解决程序代码中语句过长的问题 26 7 3 增加内涵 功能模块的创建 7 3 1模块简介 模块作为Access数据库中的一个重要对象 它是将VBA声明 表达式和程序作为一个单元进行保存的集合 模块由一个通用声明部分以及一个或多个子程序或函数组成的 模块的通用声明部分用来对要在模块中或模块之间使用的变量 常量 自定义数据类型以及模块级的Option语句进行声明 其它部分为子程序或函数部分 具体如下图所示 27 28 7 3 2创建具有密码验证的主窗体模块 1 打开 计件工资管理系统 数据库 打开新建 窗体 的设计视图 单击组合框按钮 将鼠标光标移动到要添加组合框的位置单击鼠标左键 添加一个组合框 2 3 将组合框的标签修改为 请选择要打开的表格 然后双击组合框 打开组合框的 属性 窗口 单击 数据 标签 在 行来源类型 下拉列表中选择 值列表 项 在 行来源 中输入几个已经创建好的窗体的名称 人事表 加班表 请假表 4 5 29 6 在组合框的下面添加两个命令按钮 并更名为 打开 和 关闭 选中 打开 按钮 然后单击代码按钮 打开该窗体的代码编辑窗口 7 30 9 在事件列表中选择 Click 项 在对象选择下拉列表中选择 Command2 项 为 打开 按钮的单击事件输入代码 8 10 31 12 在事件列表中选择 Click 项 在对象选择下拉列表中选择 Command3 项 为 关闭 按钮的单击事件输入代码 11 13 32 15 在对象列表中选择 Form 在事件过程列表中选择 Load 事件 为Load事件输入代码 14 33 16 双击打开 密码窗体 将首先弹出要求输入密码的窗口 输入密码 单击 确定 按钮 单击组合框的下拉按钮 从下拉列表中选择一个窗体名称 这里选择 人事表 后 单击 打开 按钮即可打开相应的表格了 17 34 7 3 3创建查询窗体模块 1 打开 计件工资管理系统 数据库 打开新建窗体的 设计视图 2 创建一个命令按钮 将其标题更改为 查询 添加一个文本框 将其标签的标题更改为 请输入员工编号 重复相同的操作创建另外一个标签为 返回的员工姓名 的文本框 3 4 35 创建一个函数Search 编写如下代码 在对象列表中选择 Command4 在事件过程列表中选择 Click 事件 为 查询 按钮 Command4 的单击 Click 事件编写 Text2 Value Search Text0 Value PrimaryKey 人事表 代码 5 6 36 通过以上步骤我们就完成了函数的创建和调用 双击打开 查询员工姓名 窗体 执行的效果如图所示 37 7 3 4边学边练 使用VBA增加 计件工资管理系统 的功能 我们这里主要需要添加在 系统设置 窗口实现 人事调整 功能的代码 工资录入和查询 加班录入和查询 和 请假录入和查询 在这三个窗体中都需要添加代码来实现各自的功能 需要在 本月工资统计 和 上月工资统计 报表中添加代码实现动态打印报表 38 1 给 系统设置 窗体添加代码 这是 系统设置 窗体的操作界面 我们首先需要实现的功能是 在下拉标签中进行选择时 员工编号列表框和右侧的 员工列表 同时跟着改变 39 2 添加当单击 打印个人档案 按钮时应执行的操作 添加当选择下拉列表时 应执行的操作 添加当选择列表项时 应执行的操作 1 3 40 5 添加错误提示窗口设置代码 添加用于自动添加班组操作的代码 添加 同步更新操作 函数 完成代码的添加 4 6 调用更新过程 7 41 2 给 录入和查询 窗体添加代码 在此窗体我们主要应实现 当输入或选择了员工编号后 在姓名栏中自动显示出此人的姓名 然后当选择用户或添加记录时 应在下边员工列表中显示其当天的工作记录 以及合计的工资数 42 1 另外需要定义两个函数 chaxun 和 chaxun2 至于代码请到书中查询 并在此处进行调用 然后保存就可以了 对 件数 文本框的限制操作 即让其只能输入数字 2 43 3 给 工资统计和打印 报表添加代码 打开 本月工资统计 的设计视图 添加三个标签控件 分别位于 报表页眉 页面页眉 和 主体 节 其中位于 报表页面 的节我们将会在代码中动态更新其内容 所也我们这里将其命名为 月 在 主体 节中 添加一个文本框 工资合计 此文本框用于显示最后的工资统计记录 2 1 44 这是窗体的最终执行效果 关于报表代码 由于代码较多 我们这里不再列举 请大家到正文中查询和分析 45 7 4 兢兢业业 VBA程序的调试 1 调试工具栏及功能 简单地讲 调试 就是查找错误并对错误进行排除的过程 以下我们从调试工具栏及功能 设置断点 跟踪和设置监视点等方面对VBA程序调试进行介绍 当您对程序进行调试时 可以使用VBA的 调试 工具栏 它提供了一些非常实用的工具 打开 调试 工具栏的方法为 46 选择 视图 工具栏 调试 命令 即可调出 调试 工具栏 工具栏中各按钮的功能可在正文中查询 47 2 设置断点 直接在要设置断点的位置单击左边的断点设定区 如图所示 当您再次单击该处时 断点的设定将被取消 也可以将插入点移到要设置断点的位置 然后打开 调试 菜
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南省陵水黎族自治县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年二手房交易佣金支付标准协议
- 2025年度高科技企业采购法务与合同管理综合服务合同
- 2025房地产无底薪业务员营销服务及佣金分配合同
- 2025年度大型活动专用场馆租赁服务合同
- 2025年医疗设备采购与售后服务合同
- 2025版商铺租赁委托与市场拓展合作合同
- 2025年出租车行业新能源技术研发合作协议
- 2025版建筑废弃物填土处理工程合同
- 2025年度图书出版翻译与校对服务合同
- 行业联盟协议书范本
- 初中数学问题解决策略 特殊化教案2024-2025学年北师大版(2024)七年级数学下册
- 进度计划跟踪管理制度
- 医用物品洗涤消毒供应中心项目可行性研究报告写作模板-备案审批
- 2025年初中语文名著阅读《林海雪原》阅读题及答案
- DB36T-莲鳖种养结合技术规程
- 汽车维护与保养冷却液的检测与更换课件
- 成人肠内营养支持护理
- 2024秋新北师大版数学七年级上册教学课件 ☆ 问题解决策略:直观分析
- 8. 选择健康的生活方式(导学案)(解析版)
- DB61T 5113-2024 建筑施工全钢附着式升降脚手架安全技术规程
评论
0/150
提交评论