资源预览内容
第1页 / 共108页
第2页 / 共108页
第3页 / 共108页
第4页 / 共108页
第5页 / 共108页
第6页 / 共108页
第7页 / 共108页
第8页 / 共108页
第9页 / 共108页
第10页 / 共108页
亲,该文档总共108页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
本章重点 本章主要学习Access模块的基础概念 在熟悉VB编程窗口和VB语法特点的基 础上 学习模块的创建方法 学会VBA 编程基础 掌握VBA程序结构及编写程 序的基本方法 学会过程和自定义函数 的应用 第九章第九章 模块模块 第9章 模块 模块的基本概念 过程及模块分类 VBA 程序设计基础 模块的基本概念 Access的表 查询 窗体 报表和数据访问 页不能相互驱动和调用 使用模块和宏可以将 数据库中所有对象联系起来 统一管理 形成 完整的数据库系统 通过上一章对宏的学习 我们了解到可以利 用宏来执行一系列简单的操作 但是如果要对 数据库对象进行更复杂 更灵活的控制 就需 要通过编程来实现 在Access中 编程是通过 模块对象实现的 利用模块可以将各种数据库 对象联结起来 从而使其构成一个完整的系统 它的功能比宏更强大 设计也更为灵活 模块的基本概念 模块是Access的数据库中的一个重 要对象 模块是由VBA Visual Basic for Applications 语言编写的程序的 集合 是以函数过程 Function 或子过程 Sub 为单元的集合方式 存储 模块的分类 模块可分成两种基本类型 类模块和 标准模块 类模块 类模块是可以定义新对象的模块 新 建一个类模块 也就是创建了一个新对象 模块中定义的过程将变成该对象的属性 或方法 Access中的类模块可以独立存在 也可以与窗体和报表同时出现 窗体和报表模块是类模块的典型例 子 窗体和报表模块通常都含有事 件过程 该过程用于响应窗体或报 表中的事件 可以使用事件过程来 控制窗体或报表的行为 以及它们 对用户操作的响应 类模块 包含类的定义 属性和 方法 的模块 类模块有三种基本形式 窗体类 模块 报表类模块和自定义类模块 类模块也可脱离窗体或报表而单 独存在 这种类模块可在数据库窗 口的模块中显示 标准模块 在整个数据库中 可用的函数模 块和子程序称为标准模块 标准模块包含通用过程和常用过 程 通用过程是不与任何对象相关 联的过程 常用过程是可以在数据 库任何地方执行的与其他对象无关 的过程 将宏转换为模块 在数据库窗口 宏对象下 选择宏 选择 工具 菜单下 将宏转换为 vb 过程及模块分类 创建模块 1 模块 模块是由过程组成的 模块中的每一个过 程都可以由一个函数或一个子程序组成 2 过程 过程 将VBA语言的声明和语句集合在一起 作为一个命名单位的程序段 执行特定 功能的语句块 它包含许多语句和方法 以执行特定的操作或计算数值 过程的二种类型 子程序 执行一系列操作的过程 函数过程 特殊的 能返回值的 Function过程 能否返回值 是过程和函数之 间最大的区别 函数过程 也称为Function过程 是一种能够返回 具体值的过程 返回的值可以在表达式中 使用 函数过程以关键字Function开始 并以End Function语句作为结束 Public Private Function函数名称 参数1 as 数据类型 参数2 as 数据类型 as 数据类型 语句块1 Exit Function 函数名 函数将要返回的值 语句块1 End Function Public 所有模块的所有其他过程都可调用 Private 适用于同一模块中的其他过程 子过程 子过程也称为Sub过程 是执行一项 操作的过程 它没有返回值 子程序以 关键字Sub开始 并以End Sub语句作为 结束 使用过程的主要优点 写一个功能 模块 必要时可多次调用 若模块有错 误 改正之后 则程序中所有引用它的 地方都得到维护 子过程格式 Public Private Static Sub 子程序名 As 数据类型 Exit Sub End Sub Public 所有模块的所有其他过程都可调用 Private 适用于同一模块中的其他过程 Static 过程中的变量在模块打开期间始终有 效 在数据库窗口对象下 双击 在 设计视图中创建窗体 在窗体 中添加文本框 标签名称为 欢 迎 添加2个命令按钮 标题分 别为 显示 和 清除 然后 选中 显示 按钮 单击 属性 按钮 选择 事件 选项卡 单击 单击 项中的 在 代码窗口中输入vba语句 在代码 窗口的对象框中选择 清除 按 钮 命令2 在该过程中输入 vba语句 在代码窗口的对象框中 选择 form 在该过程中输入 vba语句 返回到窗体 单击窗体 视图 分别单击显示和清除按钮 看运行情况 例1 例2 在模块对象下创建函数过程 计算球的体积 操 作步骤如下 在模块对象下 单击 新建 按钮 打开新建模块窗 口 单击 插入 菜单上 过程 在过程对话框中选择 类型为 函数 范围为 公共的 输入名称为 v 单 击 确定 按钮 在函数过程中填写vba语句 Public Function V R As Single As Single V 3 1416 R 3 4 3 End Function 单击 视图 菜单上 立即窗口 在立即窗口输入语句 Print v 2 显示结果 33 5104 计算半径为2的球的体积 VBA 程序设计基础 面向对象程序设计的基本概念 1 对象 在VBA程序设计时 界面上的所有事物都可 以称为对象 每一个对象都有自己的属性 方 法和事件 用户是通过属性 方法和事件来处 理对象的 属性和方法 描述了对象的性质和行为 引用 对象 属性 或 对象 方法 参数名表 对象的属性例 label0 caption 学生成绩表 对象的方法例 debug print 2 3 DoCmd对象 有许多方法 如 Openform 打开窗体 例如 DoCmd Openform 学生登记 GotoControl 将焦点移到窗体上的一个控件 SetFocus 将焦点移到窗体上的一个控件 FindRecord 查找记录 RunCommand 执行Access菜单和工具条上的命令 2 对象的属性和方法 打开当前数据库中的 雇员 窗体 DoCmd OpenForm Employees Title Sales Representative 在立即窗口输入 Debug print 2 3 结果为 6 方法的例子 省略的参数 方法窗体名 标题名 3 事件 事件 对象可辨认的动作 如单击鼠标 按下某个键等 事件响应代码 若为一个事件编写一段VBA代码 则在事 件发生时执行代码 完成指定的动作 窗体中添加文本框和命令按钮 命令按钮属性中 单击 事件中添加vba代码 然后窗体视图查看 结果 Private Sub 命令2 Click 文本0 FontSize 20 End Sub VBA编程环境 工程窗口 选择对象 属性窗口 选择对象 的属性 代码 窗口 选择 事件 1 进入VBE编程环境 2 VBA 窗口 1 标准工具栏 视图Microsoft Access按钮 切换Access 2000窗口 插入按钮 插入模块或过程 运行子过程 用户窗体按钮 运行模块中的程序 中断按钮 中断正在运行的程序 重新设置按钮 结束正在运行的程序 设置模式按钮 在设计模式和非设计模式之间切换 工程资源管理器按钮 用于打开工程资源管理器 属性窗口按钮 用于打开属性窗口 对象浏览器按钮 用于打开对象浏览器 Microsoft Accsee 插入模块 运行子过程 用户窗体 设计模式中断 重新设计 工程资源管理器 对象浏览器 属性窗口 3 工程 属性 代码窗口 工程窗口 也叫工程资源管理器 显示应用程序中用到的模块文件列 表 可控制代码窗口 对象窗口 以 及对象文件夹的显示 属性窗口 所选对象的属性列表 可 按字母序 和 按分类序 查 看属性 编辑这些对象的属性 在属性窗口显示Access类对象的方 法 先在设计视图中打开对象 再双 击工程窗口上的一个模块或类 代码 窗口就会显示相应的指令和声明 代码窗口 用于输入和编辑VBA 代码 4 在代码窗口中编程 三 对象列表过程列表 提示信息 自动显示或 Ctrl J F1 VBA帮助窗口 F2 对象浏览器窗口 常量 变量 运算符和表达式 一 数据类型和数据库对象 在 Visual Basic环境下进行计算时 常常需要临 时存储数据 像大多数编程语言那样 Visual Basic 使用变量来存储值 变量有名字和数据类型 变量的 数据类型决定了如何将这些值存储到计算机的内存中 在声明变量时也可指定它的数据类型 所有变量都 具有数据类型 以决定能够存储哪种数据类型 用户 可以定义各种数据类型 Access中数据类型的应用 声明过程中的变量 定 义表 函数的参数等 VBA的数据类型表 VBA主要数据类型 数值型数据的符号 整型 长整型 c1 c2 c2 c3 c3 c4 c4 End Sub 这是一个Sub子过程 它有两个单精度型的参数a和b 参数 的值均由调用程序传过来 然后在Sub过程中进行运算和输出 例如 compute 18 3 或 call compute 18 3 在过程中可以对给出的条件进行测试 并根据测试的 结果确定是否退出过程 如果要退出过程则使用Exit Sub 子句 例如可以修改上面的compute过程 代码如下 Private Sub compute a As Single b As Single If b 0 then Exit Sub End If c1 a b c2 a b c3 a b c4 a b Print c1 c1 c2 c2 c3 c3 c4 c4 End Sub 例 编写 将2个数按大小排序的子过程 2 函数过程的定义和调用 过程使用起来很方便 但如果需要返回参数 就要用到函数了 在 VBA中 提供了大量的内置函数 比如字符串函数Mid 统计函数 Max 等 在编程时直接引用就可以了 非常方便 但有时我们需要按自己的要求定制函数 比如我们需要计算半径为 R的圆的面积A A 3 14 R 2 但是 圆的半径是不确定的 我们不 可能为每一个不同半径的圆来写上相似的一段代码 这时就需要使 用函数 用Function 语句可以声明一个新函数 它接受的参数 返回的变 量类型及运行该函数过程的代码 其语法形式如下 Public Private Static Function 函数名 As 数据类型 函数名 Exit Function 函数名 End Function 对函数使用Public关键字 则所有模块的所有其 他过程都可以调用它 用Private关键字则使这个函 数只适用于同一模块中的其他过程 当把一个函数 说明为模块对象中的私有函数时 就不能从查询 宏或另一个模块中的函数调用这个函数 包含Static关键字时 只要含有这个过程的模块 是打开的 则所有在这个过程中无论是显式还是隐 含说明的变量值都将被保留 可以在函数名末尾使用一个类型声明字符或使用As 子句来声明被这个函数返回变量的数据类型 如果没有 则VBA将自动赋给该变量一个最合适的数据类型 例如 求圆面积函数 Public Function A R As Single As Single A 3 14 R 2 求半径为R的圆的面积A End Function 这样 一个面积函数就完成了 调用它时非常方便 如果要计算半径为5的圆的面积 只要调用函数A A 5 或者编写一个全局过程调用函数过程 函数过程可以被查询 宏等调用 对于数据库中的 计算控件特别有用 Public Function A R As Single As Single A 3 14 R 2 End Function Public Sub mj Dim R As Single R InputBox 请输入半径值 msgbox A R End Sub 二 参数传递 过程定义时可以设置一个或多个形参 之间用逗号 分隔 形参得完整定义格式 调用过程的程序所带参数为实参 实参可以是一个 固定的值 常量 例如 5 可以是一个表达式5 2 可 以是一个已经赋值的变量 例如 j 被调过程中一定要有接收
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号