




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章 宏的创建与使用 第11章 模块与VBA编程 第9章 宏的创建与使用 教学目标 了解模块的概念 掌握VBA编程基础 掌握VBA程序结构 掌握过程定义与调用 掌握VBA的数据库编程 重点与难点:VBA数据库编程 第9章 宏的创建与使用 引 言 Access拥有一套功能强大的编程工具VBA,使用这 套编程工具,用户可以开发出功能比较完善的数据库 系统。 VBA是Visual Basic for Application的英文缩写,是用 Basic语言作为语法基础的可视化的高级语言,是应用 在Office产品内部的编程语言。 第9章 宏的创建与使用 11.1 模块的概念 模块是Access数据库中最后一个重要的对象, 它是用VBA语言编写的,模块起着存放用户编 写的VBA代码的作用。 第9章 宏的创建与使用 一.模块的分类 模块有两种基本类型:标准模块和类模块。 1标准模块 标准模块包含通用过程和常用过程; 供各个数据库的对象使用,作用范围在整个应用程序中 ,生命周期是伴随着应用程序的运行而开始、伴随着应 用程序的关闭而结束; 标准模块具有全局特性。 第9章 宏的创建与使用 类模块 类模块是含有类定义的模块,包括其属性和方法的定义 ; 窗体模块和报表模块都是类模块,它们分别与某个窗体 或报表相关联; 窗体模块和报表模块的作用范围在其所属的窗体或报表 内部,其生命周期是随着窗体或报表的打开而开始,随 着窗体或报表的关闭而结束; 窗体模块和报表模块具有局部特性。 第9章 宏的创建与使用 二.宏与模块 宏的操作功能,同样可以在模块对象中通过编写 VBA语句来实现,也可以将已创建好的宏转换为等价的 VBA模块。 1将宏转换为模块 转换窗体或报表中的宏 将全局宏转换为模块 .宏与模块的选择 凡是宏无法实现的或者用宏实现起来比较繁琐的功能 ,都可以通过VBA来完成。 第9章 宏的创建与使用 三.模块的组成 模块由声明和过程两个部分组成,一个模块中有一个 声明区域和一个或多个过程,在声明区域对过程中用到 的变量进行声明,过程是模块的组成单元,分为子(Sub) 过程和函数(Function)两类。 第9章 宏的创建与使用 四.创建VBA模块与编程环境 Access系统提供了一个编程界面VBE(Visual Basic Editor)。在VBE窗口可以完成Access的模块设计 。 1进入VBE编程环境 进入类模块的方法 进入标准模块的方法 2VBE界面 VBE工具栏、工程窗口、属性窗口、代码窗口 第9章 宏的创建与使用 11.2 VBA编程基础 第9章 宏的创建与使用 一.数据类型 VBA提供了较为完备的的数据类型,它包含了 除Access表中的OLE对象和备注类型以外的其他所 有数据类型,包括基本数据类型和用户自定义数据 类型。 第9章 宏的创建与使用 二.常量 常量表示一个具体的、不变的值。VBA的常量包括 数值常量、字符常量、符号常量、系统常量和内部常量5 种。其中数值常量和字符常量最常用。 1数值常量 数值常量由数字等组成,如256、123.45、34.123 E-5等 。 2字符常量 由定界符括起来的一串字符,如“Computer”、“ABC” “武汉”等。 第9章 宏的创建与使用 3符号常量 符号常量可用Const语句创建,格式如下: Const 符号常量名称=常量值 其中符号常量的名称一般用大写命名,以便和变量区分。 如果在Const前面加上Global或Public,则定义的符号常量就是全 局符号常量,这样,在所有的模块中都可以使用。 在定义符号常量时,不需要为常量指出数据类型,VBA会自动按存储 效率最高的方式确定其数据类型。 在程序运行过程中对符号常量只能作读取操作,而不能对其进行修改 或重新赋值。 4系统常量 系统常量是指Access启动时自动建立的常量,包括True、False、 Yes、No、Off、On和Null等,可以在Access中的任何地方使用系统常 量。 第9章 宏的创建与使用 5内部常量 内部常量是VBA预定义的内部符号常量,所有内部常量 均可在宏或VBA代码中使用。 内部常量通过前两个字母来指明定义该常量的对象库。 来自Access库的常量以“ac”开头,例如acCmdSaveAs,来 自ActiveX Data Objects(ADO)库的常量以“ad”开头, 而来自VB库的常量则以“vb”开头。 第9章 宏的创建与使用 三.变量 变量是指在应用过程中其值可以改变的量。 1变量的命名规则 变量名只能由字母、数字和下划线组成; 变量名只能以字母开头; 变量名不能使用系统保留的关键字,例如PRINT、 WHERE等; 在VBA的变量名中不区分大小写字母,例如ABC、abc或 abc表示同一个变量; 在VBA中的过程名、符号常量名、自定义类型名、元素 名等在命名时都遵循以上的规则; 通常采用大小写字母混合的方式,例如PhntText。 第9章 宏的创建与使用 2变量类型的定义 根据对变量类型定义的方式不同可以将变量分为两种 形式。 (1) 隐含型变量 隐含型变量是指在使用变量时,在变量名之后添加不同 的后缀表示变量的不同类型。 例如:NewVar%=65 如果在变量名称后面没有添加后缀字符来指明隐含变量 的类型时,系统会默认为Variant数据类型。 第9章 宏的创建与使用 (2) 显式变量 显式变量是指在使用变量时要先定义,后使用,定义变 量采用下面的方式: Dim 变量名As 类型名 例如:Dim NewVar As Integer Dim MyName As String*10 在一条Dim语句中也可以定义多个变量,例如: Dim Varl AS String,Var2 AS Double 在Dim语句中省略了As和类型名时表示定义的是变体类型 。例如: Dim Varl,Var2 As Double 第9章 宏的创建与使用 3变量的作用域 作用域是指变量在程序中可使用的范围,定义变量 的位置不同,其作用范围也不同。根据变量的作用域 ,可以将变量分为3类,分别是局部变量、模块变量和 全局变量。 (1)局部变量 指定义在模块过程内部的变量。局部变量的作用 域是它所在的过程,这样,在不同的过程中就可以定 义同名的变量,它们之间是相互独立的。 第9章 宏的创建与使用 (2) 模块变量 指在模块的起始位置、所有过程之外定义的变量 ,运行时模块所包含的所有子过程和函数中都可以使 用该变量。 4数据库对象变量 窗体对象的引用格式如下: Forms!窗体名称!控件名称.属性名称 报表对象的引用格式如下: Repons!报表名称!控件名称.属性名称 上面的格式中如果省略了属性名称,则表示控件 的基本属性。 第9章 宏的创建与使用 例如,设置“学生基本情况”窗体中“学号”文本框的属性, 用VBA程序代码表示如下: Forms!学生基本情况!学号 = ”070501” 等价于:Forms!学生基本情况!学号.Value = ”070501” 下面使用Set建立控件对象的变量,这样,在引用对象时就 很方便。 首先定义一个控件类型的变量: Dim txtName AS Control 然后为该变量指定窗体控件对象: Set txtName = Forms!学生基本情况!学号 以后就可以使用下面的方法引用对象了: txtName = ”070501” 第9章 宏的创建与使用 四.运算符与表达式 表达式是指用运算符将常量、变量和函数连接起来的 有意义的式子。VBA中有算术运算符、关系运算符、逻 辑运算符、连接运算符和对象运算符。 1算术运算符与算术表达式 包括乘幂“”、乘法“*”、除法“”、整数除法“”、求 模“Mod”、加法“+”和减法“”7个运算符。 第9章 宏的创建与使用 2关系运算符关系表达式 用来表示两个值或表达式之间的大小关系,有 相等“=”、不等“”、大于等于“=”、小 于“”、大于“”、大于等于“=”、小 于“ Then End If 功能:如果条件为真,执行Then下面的语句序列,如果条件为假,则不 执行Then下面的语句序列而直接执行End If后面的语句。 第9章 宏的创建与使用 (2)选择分支语句 If Then Else End If (3)多重选择分支语句 If Then ElseIf Then ElseIf Then Else End If 功能:如果条件为真,执行Then 下面的语句序列1,如果条 件为假,则执行Else下面的 语句序列2。 功能:如果条件1为真,执行Then 下面的语句序列1,如果条 件为假,则继续判断条件2 ,若为真,执行语句序列2 ,否则继续判断下一个条件 。如此下去,若前面的条件 均不成立,则检查有无Else 语句,若有,则无条件执行 Else下面的语句序列,若无 ,则什么都不执行,程序直 接跳转到End If之后。 第9章 宏的创建与使用 (4)多重分支语句 Select Case 测试表达式 Case 表达式列表l 语句序列1 Case 表达式列表2 语句序列2 Case 表达式列表n 语句序列n Case Else 语句序列n+l End Select 功能:Case语句的匹配测试是按 顺序进行的,如果有多个分 支的值与测试表达式相匹配 ,则只执行第一个相匹配的 Case下面的语句序列,其他 符合条件的分支不会再执行 。如果没有找到匹配的条件 ,则VBA执行Case Else子句 (此项是可选的)中的语句 。 第9章 宏的创建与使用 1循环结构 在VBA中可以使用DoLoop与ForNext实现循环结构。 (1)DoLoop循环语句 DO While 条件式 循环体 Exit DO Loop 语句的执行过程如下: 计算“条件式”,当“条件式”为真时执行,否则,结束循环。 执行循环体。 遇到Loop跳转到 。 在循环体中可以有条件地使用Exit Do语句,目的是使循环提前结 束并退出循环。 第9章 宏的创建与使用 DO Until 条件式 循环体 Exit DO Loop 语句的执行过程与DoWhileLoop语句相似,唯一不同的是, 在该结构中,当条件式的值为假时重复执行循环,直到条件式为真 时结束循环。 u上面两种格式的共同特点是先判断条件式,后执行循环体,也可以 将这两种结构中的条件式放在循环结构的末尾,即先执行后判断, 这样,DoLoop语句又有下面两种演变形式。 第9章 宏的创建与使用 DoWhileLoop形式的另一种写法如下: DO 循环体 Exit DO Loop While 条件式 DoUntilLoop形式的另一种写法如下: DO 循环体 Exit DO Loop Until条件式 这两种演变格式保证循环体至少执行一次。 第9章 宏的创建与使用 (2)ForNext循环语句 DoLoop循环适用于循环次数无法预先确定的循环应用。对于循 环次数可以预先确定的循环应用,则可以采用ForNext循环,它有 利于程序的清晰与可读性。 ForNext语句的语法格式如下: For 循环变量 = 初值 TO 终值 Step步长 循环体 Exit For Next 循环变量 For语句的执行过程如下: 循环变量取初值。 检查循环变量的值是否超过终值,若未超过终值,循环继续,执行 ;若超过终值,则跳过循环体,转而执行Next后面的语句。 执行循环体。 循环变量增加一个步长值,程序跳转到。 注:如果步长为1,则关键字Step和步长都可以省略,如果终值小于初值 ,步长应为负值,否则循环体一次也不执行。 第9章 宏的创建与使用 四.VBA程序的调试 在VBE中,程序错误大致分为两类,一类是语法 错误,一类是逻辑错误。 1调试工具 2设置断点 3单步跟踪 4使用不同的调试窗口 第9章 宏的创建与使用 11.4 过程定义和调用 VBA使用的过程有子(Sub)过程、函数( Function)过程和属性(Property)过程。 第9章 宏的创建与使用 一.子过程的定义和调用 1子过程的定义 子过程的定义使用Sub语句,定义格式如下: Public|PrivateStaticSub子过程名(形式参数 ) 子过程语句 Exit Sub 子过程语句 End Sub 说明: 使用Public表示该过程可以被任何模块中的任何过程访问,使 用Private时,表示该过程只能在声明它的模块中使用。 使用Static时,表示在两次调用之间保留过程中的局部变量的 值。 形式参数简称形参,用来接收调用过程时由实参传递过来的参 数。如果有多个形参,则参数之间用逗号分开。 第9章 宏的创建与使用 2子过程的调用 子过程的调用可以使用两种形式: Call子过程名 (实际参数) 或 子过程名 实际参数 上式中的实际参数简称实参,是传递给形参的数据。 如果使用Call来调用一个需要参数的过程,则形参要放在括 号中,如果省略了关键字Call,则形参外面的括号也必须省 略。 每调用一次过程,Sub与End Sub之间的语句就执行一次。 第9章 宏的创建与使用 1函数过程的定义 Public|PrivateStatic Function 函数过程名(形参 )As 数据类 型 函数过程语句 函数过程名 = 表达式 Exit Function 函数过程语句 函数过程名 = 表达式 End Function 说明: 其中的Public、Private和Static的作用与Sub过程中是一样的 。 格式中的As 数据类型用来指定函数返回值的类型。 格式中的函数过程名 = 表达式用来定义函数返回的值。 二.函数过程的定义和调用 第9章 宏的创建与使用 2函数过程的调用 函数过程的调用只能使用一种形式: 函数过程名(实际参数) 由于函数有返回值,实际使用函数调用时,通过有两种用 法,一种是将返回值赋给某个变量,也就是使用下面的格式: 变量名 = 函数过程名(实际参数) 另一种方法是将函数的返回值作为另一个过程调用中的实 参。 第9章 宏的创建与使用 11.5 VBA的数据库编程 使用VBA访问数据库,目的是为了更快速、更有 效地管理数据,开发更实用的应用程序,这就是VBA 的数据库编程。 第9章 宏的创建与使用 一.数据库引擎及其接口 所谓数据库引擎实际上是一组动态链接库(DLL),当程序 运行时,被连接到VBA程序而实现对数据库数据的访问 功能。 数据库引擎是一种通用的接口方式,是应用程序与数据 库之间的桥梁,用户可以用统一的方式访问不同的数据 库。这样的数据与程序相对独立,减少了大量数据的冗 余。 在VBA中,主要有3种数据库访问接口,分别是开放数据 库互联应用编程接口ODBC API(Open Database Connectivity APl)、数据访问对象DAO(Data Access Objects)和Active数据对象ADO(ActiveX Data Objects)。 第9章 宏的创建与使用 二.数据库访问对象DAO 1DAO的模型结构 DAO结构是一个分层结构的设计,其中数据引擎对象 DBEngine处于底层。用户在使用时,通过设置属于不同 层次的对象变量,并通过对象变量来调用访问对象、设 置访问对象的属性,以实现对数据库的各项访问操作。 2设置DAO库的引用 第9章 宏的创建与使用 3使用DAO访问数据库 (1)定义对象变量 格式:Dim 变量名 As DAO对象名 (2)通过Set语句设置各
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提高语文试题通过率试题及答案
- 食品安全风险防控策略考查试题及答案
- 江西省余干县七年级地理上册 3.3降水的变化与分布教学设计 (新版)新人教版
- 一年级道德与法治下册 第一单元 我爱我家 第2课《在家人关爱下成长》教学设计 冀教版
- Module 10 Unit 1 Don't talk in the library (教学设计)-2024-2025学年外研版(三起)英语六年级上册
- 古代文学史相关试题及答案分享
- 江苏省江阴市高中生物 第二章 组成细胞的分子 2.2.2 生命活动的主要承担者-蛋白质教学设计 新人教版必修1
- 会务接待考试题及答案
- 三年级英语上册 Unit 1 School and Numbers Lesson 3 How Are You教学设计 冀教版(三起)
- 重庆市巴南区石龙初级中学初中体育与健康教育《谈“艾”不必色变》教学设计 新人教版
- 常见恶性心律失常的护理
- 2025年1月浙江省高考物理试卷(含答案)
- 天然气站租赁合同
- 【公开课】同一直线上二力的合成+课件+2024-2025学年+人教版(2024)初中物理八年级下册+
- DL∕T 5161.8-2018 电气装置安装工程质量检验及评定规程 第8部分:盘、柜及二次回路接线施工质量检验
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- (2024年)桥梁施工质量控制要点
- NB-T 47013.15-2021 承压设备无损检测 第15部分:相控阵超声检测
- 空调清洗施工方案
- 《钱的旅行》课堂 课件
- 《数据库验收规定》word版
评论
0/150
提交评论