第8章 宏与模块.ppt_第1页
第8章 宏与模块.ppt_第2页
第8章 宏与模块.ppt_第3页
第8章 宏与模块.ppt_第4页
第8章 宏与模块.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

第八章宏与模块 内容提要 8 1宏与VBA8 2宏的创建8 3模块8 4VBA程序设计概述 8 1宏与VBA 利用宏可以自动执行某些任务 如可将数据库对象有机地组织起来等 VBA VisualBasicForApplications 语言具有强大的编程功能 可以完成宏无法实现的功能 窗体中的命令按钮等控件实现一定的功能 可以 使用控件向导 第5章已叙述 但功能远不够 宏VBASQL语言以上的方法可以使控件完成几乎所有的数据库操作 8 1 1Access宏 1 宏的概念宏是一个或多个操作命令的集合 其中 每个操作执行特定的功能 宏不同于菜单命令 菜单命令一般用在数据库的设计过程中 必须由用户来操作 宏命令一般用在数据库的执行过程中 可以自动执行 如果使用的宏较多 可将相关的宏分到不同的组中 宏组 宏由宏名 条件 操作和操作参数四部分组成 8 1 1Access宏 2 宏的使用使用宏非常方便 不需要编程和记忆各种语法 只需利用几个简单的操作就可以完成对数据库的一系列操作 Access提供了几十种基本的宏操作 表8 1列出了其中几种常见的操作命令 8 1 2宏设计窗口 在数据库窗口中 单击 宏 对象 然后单击工具栏上的 新建 按钮 可以打开 宏 设计窗口 8 1 2宏设计窗口 在宏设计器中 宏名 和 条件 两列是可选的 单击工具栏上的 宏名 或 条件 按钮 在设计器上 就会出现 宏名 或 条件 列 8 1 2宏设计窗口 宏名 用来定义一个宏或宏组的名字 执行该宏操作时 可以直接运行该宏 在一定的条件下才执行的宏操作 称为条件宏 在条件列中输入相应的条件表达式 宏执行之前先判断条件是否满足 如果满足则执行该宏 如果条件不满足 该宏不被执行 8 1 3VBA概述 VBA VisualBasicForApplications 是微软Office套件的内置编程语言 当某些操作不能用Access对象实现或实现困难时 可以用VBA语言编写代码 VBA程序由模块组成模块中有若干个过程 过程是包含VBA代码的程序段 8 1 4宏与VisualBasic 对于下列情况 应该使用VBA而不要使用宏 使数据库易于维护 使用内置函数或自行创建函数 处理错误消息 2宏的创建 8 2 1引例 创建一个 选课查询窗体宏 单击窗体中的两个按钮 可以分别运行 学生基本信息 和 学生课程成绩查询 宏 8 2 2创建宏 创建 学生基本信息 宏 1 打开 成绩管理 数据库窗口2 打开宏窗口 单击新建按钮 8 2 2创建宏 3 添加操作 4 保存宏 8 2 2创建宏 创建 学生课程成绩查询 宏 8 2 2创建宏 创建引用宏的窗体 8 2 2创建宏 1 新建窗体在窗体上添加一个标签 设置属性如下 8 2 2创建宏 2 添加命令按钮在窗体上添加命令按钮 8 2 2创建宏 除了通过向导为命令按钮选择运行的宏 也可以将命令按钮的 单击 属性设置为所需执行的宏 3 保存窗体 8 2 3调试宏 1 在设计视图中编辑宏 插入行按钮 删除行按钮 单步执行宏按钮 8 2 3调试宏 2 单步执行调式宏的操作单击宏工具栏上的 单步 按钮 单击 运行 按钮 8 2 4运行宏 运行宏时 系统将按顺序执行宏中的所有操作 直接运行宏的操作如下在宏窗口中 单击工具栏上的 运行 按钮在数据库的 宏 对象窗口中 先选定建立的宏 然后单击 运行 按钮 或双击相应的宏名 在数据库的其他对象 如窗体和报表 窗口中 执行 工具 宏 运行宏 命令 然后在 执行宏 对话框中输入或选择宏名 在VBA过程中 使用DoCmd对象的RunMacro方法执行宏 3模块 模块的基本概念创建模块宏与模块之间的转换 3 1模块的基本概念 1 模块的定义模块就是将VBA声明和过程作为一个单元进行保存的集合模块包含若干由VBA代码组成的过程 2 模块的分类类模块类模块是可以定义新对象的模块 窗体模块和报表模块都属于类模块标准模块其实质就是没有界面的VBA程序 是 纯 程序段标准模块一般用于存放供其他Access数据库对象使用的公共过程 8 3 2创建模块 1 创建一个标准模块模块由过程组成 而过程是由程序员编写的程序1 新建模块 8 3 2创建模块 2 在模块中加入一个过程过程由VBA语句组成 是一段相对独立的代码 过程与过程之间相互隔离 系统不会从一个过程自动执行到另一个过程 但一个过程可以通过调用执行另一个过程 过程不是Access的一个独立对象 不能单独保存 只能存在于模块中 过程以Sub 的形式开头 圆括号内放置该过程被调用时需接受的参数 以EndSub结束 8 3 2创建模块 在 模块A 模块中创建一个Welcom过程 并执行该过程 双击 将插入点置于过程中 运行该过程 8 3 2创建模块 2 创建一个类模块在成绩管理数据库的 课程学分汇总 窗体中 设置一个窗体类模块 当用户单击 学分 输入控件时 可以弹出一个对话框 显示 可以修改该课程的学分 信息打开成绩管理数据库在设计视图中打开 课程学分汇总 窗体 右击选择 学分 的控件 选择 属性 命令 在弹出的对话框中 选择 事件 选项卡的 单击 表示在单击该控件后将要执行的事件过程 单击 单击 属性框右边的 生成器 按钮 打开 选择生成器 对话框 8 3 2创建模块 2 创建一个类模块在 选择生成器 对话框中选择 代码生成器 单击 确定 按钮 打开模块窗口 系统自动生成对应事件的过程头和过程尾 可以在模块窗口中输入要完成的事件过程 在过程头和过程尾之间输入下列语句 MsgBox 可以修改该课程的学分 保存该模块 8 3 2创建模块 2 创建一个类模块在该窗体的运行模式下 单击 学分 控件 屏幕弹出对话框 如下 8 3 2创建模块 3 创建一个模块 并在模块中运行一个宏在 成绩管理 数据库的 学生信息浏览 窗体中 设置一个窗体类模块 当用户单击该窗体的 学生信息浏览 标签时 运行 学生基本信息 宏 以打开一个查询 学生基本信息查询 在设计视图中打开 学生信息浏览 窗体 在设计视图中打开 8 3 2创建模块 右击该窗体的 学生信息浏览 标签控件 选择 属性 命令 在弹出的对话框中 选择 事件 选项卡的 单击 表示在单击该控件后将要执行的事件过程 单击 单击 属性框右边的 生成器 按钮 打开 选择生成器 对话框 8 3 2创建模块 在 选择生成器 对话框中选择 代码生成器 单击 确定 按钮 打开模块窗口 系统自动生成对应事件的过程头和过程尾 可以在模块窗口中输入要完成的事件过程 在过程头和过程尾之间输入下列语句 DoCmd RunMacro 学生基本信息 8 3 2创建模块 保存该模块在窗体的运行模式下 单击 学生信息浏览 标签 则屏幕弹出一个查询 单击 运行宏 宏运行的结果 4VBA程序设计概述 面向对象程序设计的基本概念VBA编程环境VBA基础知识程序控制语句 面向对象程序设计的基本概念 抽象继承封装多态性集合和对象属性和方法事件和事件过程 VBA编程环境 进入VBA编程环境VBE窗口在VBE环境中编写VBA代码 VBA基础知识 数据类型标准数据类型用户自定义数据类型对象数据类型 VBA基础知识 常量VBA在运行时其值始终保持不变的量字符串常量放在一对 内 日期 时间型常量放在一对 内 如 中国 9 1 2005 等 符号常量 用标识符保存一个常量值使用Const语句定义符号常量 如ConstPai 3 141569ConstTermBeginDate 3 1 2007 VBA基础知识 变量变量的命名原则第一个字符必须是字母包含的字符数不超过255个不得与VBA的关键字同名 如不能使用Sub For等不能使用下列字符 空格 变量的声明变量在使用前应该用Dim语句进行声明DimAs As DimStudentNameAsStringDimGradeAsInteger AvgGradeAsSingleDimPassedAsBoolean ExamDateAsDate默认情况下 变量可以不经声明即可使用 该变量被自动声明为Variant类型变量的应用范围 VBA基础知识 数组数组是一种数据存储结构 它是用一个命名的一个集合体 用不同的下标予以区分数组具有以下特性 数组中的每个数据称为元素 每个元素类型相同 占用同样大小的存储空间数组中的元素在内存中连续存放通过下标可访问数组中的每个元素 下标的类型可以是整数 常量 变量或算术表达式 数组分为一维数组 二维数组和多维数组 Array 0 17Array 1 19 VBA基础知识 数组一维数组中的元素呈直线状排列 每个下标对应一个元素 数组在使用前必须先行定义 语法格式是 Dim To上界 As数据类型若省略下标下界 则数组的最小下标为0例如 DimB 20 AsDoubleB数组共有21个元素 下标的起止范围是0 20 VBA基础知识 数组二维数组中数据排列呈平面状 可保存一个二维表的信息 数组元素使用行下标和列下标定位 定义格式 Dim To 上界 To 上界 As数据类型如果省略下标的下界值 则下界值默认为0例如 DimC 2 3 AsInteger 声明的C数组有2 3 6个元素 二维数组的操作通常需要与双重循环相结合 VBA基础知识 数据类型标准数据类型用户自定义数据类型对象数据类型常量变量变量的命名原则变量的声明变量的应用范围数组对象变量表达式 VBA基础知识 对象变量Access建立的数据库对象及其属性 均可被看成VBA程序中的变量加以引用 例如 Access中窗体与报表对象的引用格式为 Forms 或Reports 窗体 或报表 名称 控件名称 属性名称 关键字formsReports分别表示窗体或报表对象集合 感叹号 分割开对象名称和控件名称 VBA基础知识 表达式表达式 用运算符将常量 变量 函数等连接起来的式子 书写在一行上 表达式可分为 算术表达式 如Count Count 1关系表达式 如C20逻辑表达式 如Age 60 b Sqr b 2 4 a c 2 a 程序控制语句 顺序结构控制选择结构控制循环结构控制 顺序结构控制 1 注释语句注释语句以Rem开头 但一般用撇号 引导注释内容 用撇号引导的注释可以直接出现在语句后面 2 声明语句声明语句用于命名和定义常量 变量 数组和过程 3 赋值语句赋值语句是任何程序设计中最基本的语句 赋值语句为变量指定一个值或表达式 赋值语句的形式如下 变量名 表达式 选择结构控制 If Then 语句格式 IfThen关系表达式或逻辑表达式成立时执行Then后的语句 否则直接执行If的下一条语句 可以一条语句 也可以是若干条用冒号 隔开的VBA语句组 选择结构控制 随机出一道两位数加法题让小学生回答Subtest DimAAsInteger BAsInteger SumAsIntegerRandomizeTimerA 10 Rnd 89 B 10 Rnd 89Sum InputBox A B 两位数加法 IfSum A BThenMsgBox 答案正确 IfSumA BThenMsgBox 答错了 正确答案是 A BEndSub 选择结构控制 If Then Else 语句格式 IfThenElseIf后的表达式成立时执行Then后的语句 不成立时执行Else后的语句 然后程序继续执行If后的其他语句 例 SubPassed DimGradeAsIntegerGrade InputBox 请输入考试分数 IfGrade 60ThenMsgBox 合格 ElseMsgBox 不合格 EndSub 选择结构控制 选择分支语句格式 IfThenEndIf或IfThenElseEndIf IfGrade 60ThenMsgBox 合格 ElseMsgBox 不合格 EndIf 选择结构控制 例SubGrade DimGradeAsInteger EvaluAsStringGrade InputBox 请输入考试分数 IfGrade 60ThenEvalu 不合格 ElseIfGrade 90ThenEvalu 合格 ElseEvalu 优秀 EndIfMsgBoxGrade 分的等级为 EvaluEndSub 选择结构控制 SelectCase语句格式SelectCaseCaseCase CaseElse EndSelect 选择结构控制 例SubGrade1 DimGradeAsInteger EvaluAsStringGrade InputBox 请输入考试分数 SelectCaseGradeCase100 Evalu 满分 Case90To99 Evalu 优秀 Case80To89 Evalu 良好 Case70To79 Evalu 中 Case60To69 Evalu 合格 CaseIs 60 Evalu 不合格 CaseElse Evalu 数据错误 EndSelectMsgBoxGrade 分的等级为 EvaluEndSub 循环结构控制 FOR语句语法格式 For 初值To终值 Step 循环体 Next 循环变量 步长值为1时可省略Step子句 循环结构控制 编写Even 过程 输出10 20的所有偶数SubEvent DimIAsInteger SA

温馨提示

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

评论

0/150

提交评论