




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章 模块与VBA编程 1. 模块的基本概念【1】类模块;【2】标准模块【3】将宏转换为模块2. 创建模块【1】创建VBA模块:在模块中加入过程,在模块中执行宏。【2】编写事件过程:键盘事件,鼠标事件,窗口事件,操作事件和其他事件。3.调用和参数传递4.VBA程序设计基础:【1】面向对象程序设计的基本概念【2】VBA编程环境:进入VBE,VBE界面【3】VBA编程基础:常量,变量,表达式【4】VBA程序流程控制:顺序控制,选择控制,循环控制【5】VBA程序的调试:设置断点,单步跟踪,设置监视点教学重点第1页/共46页8.1 模块的基本概念 模块是Access系统中的一个重要对象,它以VBA(
2、Visual Basic for Applications)为基础编写,以函数过程(Function)或子过程(Sub)为单元的集合方式存储。 Access中,模块分为类模块和标准模块两种类型。 第2页/共46页8.1.1 类模块 窗体模块和报表模块都属于类模块,它们从属于各自的窗体或报表。窗体模块和报表模块通常都含有事件过程,而过程的运行用于响应窗体或报表上的事件。 窗体模块和报表模块具有局部特征,其作用范围局限在所属窗体或报表内部 ,而生命周期则是伴随着窗体或报表的打开而开始,关闭而结束。 第3页/共46页8.1.2 标准模块 标准模块一般用于存放供其他Access数据库对象使用的公共过程
3、 ,通常安排一些公共变量或过程供类模块里的过程调用. 标准模块中的公共变量和公共过程具有全局特性,其作用范围在整个应用程序里,生命周期是伴随着应用程序的运行而开始,关闭而结束。 在Access系统中,根据需要可以将设计好的宏对象转换为模块代码形式。第4页/共46页8.2 创建模块 过程的概念: 过程是模块的单元组成,由VBA代码编写而成。过程分两种类型:Sub子过程和Function函数过程。 第5页/共46页8.2.1 在模块中加入过程 模块是装着VBA代码的容器,一个模块包含一个声明区域,且可以包含一个或多个子过程(以Sub开头)或函数过程(以Function开头)。 子过程的定义 :子过
4、程是一系列由 Sub 和 End Sub 语句所包含起来的VBA语句,只执行一个或多个操作,而不返回数值。 第6页/共46页 定义格式如下: Sub 子过程名 程序代码 End Sub其命名与变量命名规则相同子过程开始子过程结束完成某个功能的子过程体 内部不能再定义其他过程 ,但可用Call命令调用其他过程“SubSub子过程名子过程名”和和“End SubEnd Sub” 必不可少必不可少第7页/共46页 函数过程的定义 :函数过程通常情况下称为函数,是一系列由 Function 和 End Function 语句所包含起来的 VBA语句。Function 过程和 Sub 过程很类似,但函数
5、过程可以通过函数名返回一个值。 定义格式如下: Function 函数过程名 As 返回值类型 程序代码 End Function 函数开始函数结束函数体内不允许定义其他的函数过程和子过程,可直接引用函数过程名,并由接在函数过程名后的括号所辨别 第8页/共46页 创建过程: 子过程或函数过程既可以在标准模块中建立,也可以在窗体模块中建立。 方法:在VBE中执行“插入过程”菜单命令第9页/共46页8.2.2 在模块中执行宏 在模块的过程定义中,使用Docmd对象的RunMacro方法,可以执行设计好的宏。其调用格式为: Docmd.RunMacro MacroName ,RepeatCount
6、,RepeatExpression 其中,MacroName表示当前数据库中宏的有效名称;RepeatCount可选项,用于计算宏运行次数的整数值;RepeatExpression可选项,数值表达式,在每一次运行宏时进行计算,结果为False时,停止运行宏。 第10页/共46页8.3 VBA编程基础 VBA(Visual Basic for Application)是Microsoft Office内置的编程语言,是根据VB简化的宏语言。 计算机的程序设计语言有很多,如Fortran, Cobol, Basic, Pascal, C, C+, Java, Delphi等,它们各有特点和不及适用
7、领域。其中,Basic最初是专门针对初学者而设计的程序开发语言,因其问世后广泛被使用,再加上Windows的流行,微软公司开发了VisualBaisc作为Windows环境下的应用程序开发工具。第11页/共46页 VBA是根据Visual Basic的简化宏语言,其基本语法、词法与Visual Basic基本相同,简单易学,采用的是一种面向对象的程序设计方法。与Visual Basic不同的是,VBA不是一个独立的开发工具,一般被嵌入到像Word, Excel, Access这样的宿主软件中,与其配套使用,从而实现程序开发功能。第12页/共46页8.3.1 面向对象程序设计基本概念 对象和类
8、对象是现实世界中个体或事物的抽象表示,是由描述事物状态的有关数据和对这些数据可以进行的相关操作共同组成的。 每一个对象有自己的属性、方法和事件,用户就是通过属性、方法和事件来处理对象的。 第13页/共46页 类是对象的抽象,而对象是类的具体实例,每个对象由类来定义。 DoCmd对象 :DoCmd对象的主要功能是通过调用Access内置的方法,在VBA中实现某些特定的操作 。 事件过程 对象在识别了所发和的事件后执行的代码叫事件过程。因此想要让系统响应某个事件,就要将响应事件所要执行的程序代码添加入相应的事件过程。第14页/共46页8.3.2 VBA的编程环境 VBE第15页/共46页 启动VB
9、E的常用三种方法通过事件过程启动通过“模块”对象启动通过菜单启动 模块对象新建工具宏Visual Basic编辑器 第16页/共46页 VBE环境中编写VBA代码 例8.1 新建一个窗体并在其上放置一个命令按钮,然后创建该命令按钮的“单击”事件响应过程。单击后弹出“测试完毕”消息。第17页/共46页8.3.3 基本数据类型 字符型(String,) 、字节型(Byte ) 、 整型 (Integer,%)、长整型 (Long,&)、 单精度型(Single,!) 、双精度(Double,#) 小数型 (Decimal ) 、货币(Currency,) 逻辑(Boolean ) 、日期型
10、 (Date ) 、 对象型 (Object ) 、变体型(Variant) 第18页/共46页8.3.4 常量、变量、数组什么是定义:常量、变量?常量或变量的命名规则 :(1)常量或变量的名字须以字母或汉字开头,后跟字母、汉字、数字或下划线组成的序列,长度不能超过255个字符;(2)不能使用VBA中的关键字命名常量或变量;(3)VBA不区分常量或变量名中的大小写字母,如XYZ,xyz,Xyz等均视为相同名字。 第19页/共46页 常量:在程序运行的过程中其值不会发生变化 VBA支持4 种类型的常量:直接常量、符号常量、固有常量和系统定义常量。 变量:在程序运行的过程中其值是可以发生变化 变量
11、定义:Dim AS显示声明变量隐式声明变量变量的应用范围局部范围模块范围全局范围第20页/共46页 变量的生存周期: 变量第一次(声明时)出现到消失时所持续的时间 . 数组: 是一个由相同数据类型的变量构成的集合,数组在使用之前应该加以声明,说明数据元素的类型、数组大小、数组的作用范围。 固定大小数组的声明:Dim 数组名(下标下界 To 下标上界)As 数据类型,如Dim Array(8) As Integer , Static Array(19, 19) As Integer 第21页/共46页动态数组的声明 :A)先声明空数组及数据类型,如Dim Array( ) As Integer
12、B)在使用数组前再声明数组大小,如ReDim Array(10) 第22页/共46页8.3.5 运算符与表达式 VBA编程语言提供了多种类型的运算符完成对数据的各种运算和处理,主要包括4种类型的运算符: 1. 算术运算符及算术表达式 2. 连接运算符与字符串表达式 3. 关系运算符与关系运动表达式 4. 逻辑运算符与逻辑表达式第23页/共46页 表达式的运算顺序 表达式的运算顺序由高到低为:函数运算、算术运算、关系运算、逻辑运算。 优先级高的运算先进行,优先级相同的运算依照从左向右的顺序进行 优先级高 低高低算数运算符连接运算符比较运算符逻辑运算符指数运算()字符串连接(&)相等(=)
13、Not负数(-)字符串连接(+) 不等()And乘法和除法(*、/)小于()求模运算(Mod)小于等于(=)第24页/共46页8.3.6 常用标准函数 VBA提供了大量几个内部标准函数,可方便地完成许多操作。使用形式:函数名(参数1,参数2,参数3,) 其中函数名必不可少,函数的参数放在函数后面的圆括号中,参数可以是常量、变量或表达式。 VBA的内部函数大体可分为:转换函数、数学函数、字符串函数、时间/日期函数和随机函数。第25页/共46页 例8.2 利用随机函数,设计一个“猜数字”游戏,如图8.13所示,用户从键盘输入16之间的任意数字,看是否和电脑随机出现的数字相同。第26页/共46页8.
14、3.7 输入输出函数和过程 VBA与用户之间的直接交互是通过InputBox()函数、MsgBox()函数和MsgBox过程进行的。 1. InputBox(prompt,title,default,xpos,ypos) 函数 InputBox()产生一个作为输入数据界面的对话框,等待用户输入数据或按下按钮,并返回所输入的内容,返回值是String类型的。 注意:每执行一次InputBox()只能输入一个数据第27页/共46页 2.MsgBox(msg,type,title) 函数 MsgBox()函数可以向用户传送信息,并可通过用户在对话框上的选择,接收用户所作的响应,返回一个整型值,以决定
15、其后的操作。 第28页/共46页 MsgBox Msg,type,title过程 MsgBox语句没有返回值,因此常被用于简单的信息显示 . 第29页/共46页8.4 VBA的流程控制 VBA程序是由大量语句构成,一个语句是能够完成某项操作的一条命令。 VBA程序语句按其功能不同分为2类:一是声明语句,用于变量、常量、过程定义二是执行语句,用于执行赋值操作、调用过程、实现各种流程控制l执行语句又分为3种:顺序结构、分支结构、循环结构第30页/共46页8.4.1 顺序控制 1. VBA语句书写规则 VBA源代码不区分字母的大小写 语句书写自由 同一行上可以写多个语句,语句间用冒号“:”分隔; 一
16、个语句可分为若干行书写,但须在行后加续行标志(空格加下划线“_”)。 第31页/共46页2. VBA的基本语句 v赋值语句格式:目标操作符= =源操作符v注释语句 以关键字RemRem开头引导的注释内容,可添加到程序任意位置。 以 引导的注释内容,可直接出现在语句后面。v结束语句格式:End当在程序中执行End语句时,将终止当前程序,重置所有变量,并关闭所有数据文件第32页/共46页Private Sub Area() Rem 定义长、宽两个变量 Dim length As Single 长方形的长 Dim height As Single 长方形的宽 Rem 通过输入框输入长与宽,并将值变成
17、数值型 length = Val(InputBox(请输入长方形的长) height = Val(InputBox(请输入长方形的宽) a = length * height 计算面积 MsgBox Str(a), vbDefaultButton1, 面积End Sub第33页/共46页8.4.2 条件语句 1. 单行结构条件v格式: If Thenelse &解释: 如果成立,则执行,否则执行 若没有否则,则else 可省略。第34页/共46页 2. 块结构条件 格式:If Then ElseIf Then ElseIf Then Else End If 比如:判断考试成绩(scor
18、e) 如果0score60,则显示“不及格” 如果60=score70,则显示“及格” 如果70=score80,则显示“中等” 如果80=score90,则显示“良好” 如果90=score=100,则显示“优秀”第35页/共46页 3. 多分支结构 格式:Select Case Case Case Case Else End Select通常是变量或常量,可以是数值或字符串表达式可称为“测试表达式”的值域第36页/共46页 4. IIf函数和Choose函数vIIf( 条件,True部分 ,False部分)&当条件为真时,返回True部分的值;当条 件为假时,返回False部分的值。 条件是逻辑表达式或关系表达式。 如: y=IIf( x=0,0,1/x) Choose( 变量,值为1的返回值,值为2的返回值,值为n的返回值)第37页/共46页 程序设计: 例8.3 给出a,b,c的值,问它们能否构成三角形的3边。如能构成三角形,计算出此三角形的面积。第38页/共46页8.4.3 循环结构 1. for next格式: For =to step Exit ForNext &循环变量必须为数值类型&循环次数= Int(终值-初值)/步长)+1例:求自然数n的阶乘.第39页/共46页 2. W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程价格调整合同条款1-@-1
- 卫生间吊顶木龙骨施工方案
- 网架拆除施工方案
- 石墙施工方案
- DB3709T 037-2025泰山茶 茶叶鲜叶采摘分级技术规范
- 博罗县钢板支护桩施工方案
- 海岛燕屋年产2500吨高端滋补预制菜加工项目环境影响报告表环评报告表
- 配线架施工施工方案
- 水泥板拉木纹板施工方案
- 2025北京大兴高一(上)期末生物(教师版)
- 管道支架安装规范要求及安装间距
- 16G362 钢筋混凝土结构预埋件
- 对外汉语量词
- 朗诵朗读技巧大全ppt
- C语言PPT课件完整版
- 广东省中考物理近四年考点分布
- 中国故事英文版年英文二篇
- 2023年苏州工业职业技术学院高职单招(数学)试题库含答案解析
- 第5章液压传动控制元件02-换向阀
- 乙酸含量>80%安全技术说明书MSDS
- GB 25936.1-2012橡胶塑料粉碎机械第1部分:刀片式破碎机安全要求
评论
0/150
提交评论