第12章-模块与VBA设计ppt课件(全).pptx
2023/3/5Access2013数据库技术及应用数据库技术及应用 配套电子课件配套电子课件主编主编:向隅向隅第第1212章章 模块与模块与VBAVBA设计设计【本章知识要点本章知识要点】了解VBA编程环境了解常量、变量、表达式及函数的概念掌握VBA流程控制了解VBA对象掌握VBA创建模块的方法12.1 VBA概述概述Access利用Office提供的统一VBA(VisualBasicforApplications)编辑器(Editor)来编写过程代码,它以微软的VisualBasic编程环境为基础,在VBA中可以编写VBA函数和过程。实际上,VBA是一个集编辑、调试和编译等功能于一体的编程环境。Access的VBA界面与Word、Excel和PowerPoint的VBA开发界面基本一致。1.VBE界面界面MicrosoftAccess提供了多种启动VBA编程环境的方法,方法如下:方法一:按Alt+F11组合键。方法二:在数据库窗口中单击菜单“工具”“宏”“VisualBasic编辑器”。方法三:单击数据库窗口中的“模块”按钮,然后双击要查看或编辑的模块。方法四:单击数据库窗口的“模块”按钮,然后单击数据库窗口中的“新建”按钮。12.1 VBA概述概述12.1 VBA概述概述菜单说明文件文件的保存、导入、导出、打印等基本操作编辑基本的编辑命令视图控制VBA的视图插入插入过程、模块、类或文件调试调试程序的基本命令,包括监视、设置断点等运行运行程序的基本命令,如中断、运行命令工具用来管理VB的类库等的引用、宏以及VBA编辑器的选项外接程序管理外接程序窗口设置各窗口的显示方式帮助用来获取MicrosoftVisualBasic的链接帮助以及网络帮助1.1.菜单菜单12.1 VBA概述概述2.2.工具栏工具栏12.1 VBA概述概述3.3.窗口窗口(1)工程资源管理器窗口(2)属性窗口(3)代码窗口12.2 VBA基础知识基础知识VBA支持多种数据类型,为用户编写程序提供了方便。12.2.1 VBA12.2.1 VBA数据类型数据类型数据类型符号数据名称取值范围存储空间Byte字节02551字节Boolean布尔True或False2字节Integer%整型-32768327672字节Long&长整型-214748364821474836474字节Single!单精度浮点型负数:-3.402823E38-1.401298E-45正数:1.401298E-453.402823E384字节Double#双精度浮点型负数:-1.79769313486232E308-4.9406545841247E-324正数:4.9406545841247E-3241.79769313486232E3088字节Currency货币-922337203685477.5808922337203685477.58088字节Decimal十进制小数14字节Date日期/时间100年1月1日9999年12月31日8字节Object对象任何对象引用4字节String(fixed)$定长字符串1大约65400字符串长String(variable)变长字符串0大约20亿10字节+字符串字长Variant(数字)变体数字型任何数字值,最大可达Double的范围16字节Variant(字符)变体字符型与变长String具有相同的范围22字节+字符串长Type自定义类型每个元素的范围与它本身的数据类型的范围相同所有元素所需数目12.2 VBA基础知识基础知识在Access2013中使用VBA时经常要存储程序的中间和最后结果,这时就要用到变量。1变量变量是指程序执行过程中其值发生变化的量。变量在使用前应该进行声明。(1)变量的定义和引用VBA中通常使用Dim或Static语句显示声明局部变量。其定义格式如下:12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识Dim变量As类型Static变量AS类型例如:DimstrAsString声明一个名为str的字符串变量str=Hello给变量赋值VBA中对变量命名时必须遵守以下规则:1)变量名由字母、数字和下画线组成,但必须以字母开头。2)变量名的长度不能超过255个字符。3)变量名中不能出现空格、.、!、#、$、&等字符。4)变量名不能与关键字同名。5)在变量的作用域中,变量的名称应该是唯一的。12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识(2)变量的作用域如果变量声明语句出现在过程中,则该变量只可以在本过程中被调用;如果变量声明语句出现在模块中,则变量只能在该模块的所有过程中使用。如果要扩大变量的使用范围,如在项目中使它成为公用变量,可以在声明语句中加入Public关键字。12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识1)Public1)Public语句语句作用:声明一个公共模块级别的变量,可应用于项目中的任何位置。语法:PublicAs示例:声明一个公用的字符串类型变量:PublicStr1AsString2)Private2)Private语句语句作用:声明一个私有的模块级别的变量,该变量只能用在同一模块的过程中。语法:PrivateAs示例:定义一个私有型字符串变量。PrivateStr2AsString12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识3.Static3.Static语句语句使用该语句取代Dim语句时,所声明的变量在调用时仍保留它原来的值。4)Option Explicit4)Option Explicit语句语句12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识(3)变量的默认值除Object类型外,其他数据类型的变量都有默认值。变量一经声明,则所有数值类型变量的初始值都为0,Boolean类型的初始值为False,String类型的初始值为空串,date类型的初始值为0时0分0秒。12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识(3)变量的默认值除Object类型外,其他数据类型的变量都有默认值。变量一经声明,则所有数值类型变量的初始值都为0,Boolean类型的初始值为False,String类型的初始值为空串,date类型的初始值为0时0分0秒。(4)数据类型之间的转换类型转换函数名(表达式)12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识数组数组表示一组具有相同数据类型的值。数组使用前需要声明。声明格式如下:Dim数组名称(数组范围)As数据类型。例:DimA(1to10)AsintegerDimB(10)AsString在VBA中可以定义多维数组,其格式如下:Dim数组名称(数组范围,数组范围)As数据类型。例:DimC(9,9)Asinteger12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识常量常量是指在程序执行过程中其值不发生改变的量,即其值是固定的,不能被修改或赋予一个新值。字符串常量放在双引号内,日期/时间型常量放在一对#内,如”中国”,#9/10/2017#。VBA中常量有两种来源。(1)系统内部定义的常量(2)用户自定义的常量用户使用Const语句自定义的常量。其语法格式如下:Const常量名As类型=表达式12.2.2 变量和常量变量和常量12.2 VBA基础知识基础知识1.1.算术运算符算术运算符 、-、*、/、modmod、+、-运算符的优先顺序、-、(*,/)、mod、(+,-)从左到右依次降低。()中的运算符优先顺序相同。(2)对于整数整除运算符(),实际上就是求两个整数之商的运算。(3)对于求模运算(Mod),实际上就是求两个整数相除后的余数。12.2.3 VBA中的运算符与表达式中的运算符与表达式12.2 VBA基础知识基础知识1.1.算术运算符算术运算符date类型的数据也可进行算术运算,有下面几种形式:两个日期型数据相减一个日期型数据加一个整数一个日期型数据减一个整数12.2.3 VBA中的运算符与表达式中的运算符与表达式12.2 VBA基础知识基础知识2.2.关系运算符关系运算符关系运算符用来比较两个操作数之间的大小关系,因此也称为比较运算符。12.2.3 VBA中的运算符与表达式中的运算符与表达式运算符描述含义示例大于若ab成立,则结果为True,否则结果为False12返回False=大于等于若a=b成立,则结果为True,否则结果为False3=3返回True=等于若a=b成立,则结果为True,否则结果为False1=2返回False小于若ab成立,则结果为True,否则结果为False12返回True=小于等于若a=b成立,则结果为True,否则结果为False2=2返回True不等于若ab成立,则结果为True,否则结果为False22返回False12.2 VBA基础知识基础知识3.3.逻辑运算符逻辑运算符逻辑运算符用来进行逻辑判断。12.2.3 VBA中的运算符与表达式中的运算符与表达式abaandbaorbnotaaEqvb aXorbTrueTrueTrueTrueFalseTrueFalseTrueFalseFalseTrueFalseFalseTrueFalseTrueFalseTrueTrueFalseTrueFalseFalseFalseFalseTrueTrueFalse12.2 VBA基础知识基础知识4 4.字符串连接运算符字符串连接运算符VBA提供了两个运算符号“&”和“+”用于字符串的连接运算。&运算符:强制两个表达式执行字符串的首尾连接。+运算符:若两个表达式都是字符串,则执行字符串的首尾连接,否则执行算术加法运算。12.2.3 VBA中的运算符与表达式中的运算符与表达式12.2 VBA基础知识基础知识5.5.布尔运算布尔运算符符(1)Like(1)Like(2)Is(2)Is(3)In(3)In(4)Betweenand(4)Betweenand(5)!(5)!6.6.表达式表达式表达式是用运算符将常量、变量、函数等连接起来的式子,书写在一行上。表达式可分为算术表达式、关系表达式和逻辑表达式等。12.2.3 VBA中的运算符与表达式中的运算符与表达式12.2 VBA基础知识基础知识1.1.数学标准函数数学标准函数(1)abs(n)(1)abs(n)(2)sgn(n)(2)sgn(n)(3)sqrt(n)(3)sqrt(n)(4)round(n,m)(4)round(n,m)(5)Int(n)(5)Int(n)(6)Fix(n)(6)Fix(n)(7)sin(n)(7)sin(n)(8)Cos(n)(8)Cos(n)(9)Tan(n)(9)Tan(n)(10)exp(n)(10)exp(n)12.2.4 常用的标准函数常用的标准函数12.2 VBA基础知识基础知识2.2.字符串函数字符串函数(1)asc(C)(1)asc(C)(2)chr(N)(2)chr(N)(3)len(C)(3)len(C)(4)trim(C)(4)trim(C)(5)Ltrim(C)(5)Ltrim(C)(6)Rtrim(C)(6)Rtrim(C)(7)Left(C,N)(7)Left(C,N)(8)Right(C,N)(8)Right(C,N)(9)Mid(C,m,n)(9)Mid(C,m,n)(10)Instr(N,C1,C2)(10)Instr(N,C1,C2)12.2.4 常用的标准函数常用的标准函数12.2 VBA基础知识基础知识3.3.日期日期/时间函数时间函数(1)Date(1)Date(2)Time(2)Time(3)Now()(3)Now()(4)Year(C|N)(4)Year(C|N)(5)Month(C|N)(5)Month(C|N)12.2.4 常用的标准函数常用的标准函数12.2 VBA基础知识基础知识4 4.转换函数转换函数(1)val(C)(1)val(C)(2)str(N)(2)str(N)(3)cint(N)(3)cint(N)(4)hex(N)(4)hex(N)(5)OCT(N)(5)OCT(N)12.2.4 常用的标准函数常用的标准函数12.2 VBA基础知识基础知识5.5.常用的验证函数常用的验证函数(1)IsNumeric(1)IsNumeric(2)IsDate(2)IsDate(3)IsNull(3)IsNull(4)IsEmpty(4)IsEmpty(5)IsArray(5)IsArray(6)IsError(6)IsError(7)IsObject(7)IsObject12.2.4 常用的标准函数常用的标准函数12.2 VBA基础知识基础知识1.1.书写代码的规则书写代码的规则(1)(1)不区分大小写不区分大小写(2)(2)使用注释使用注释 使用使用remrem或或(3)(3)关于续行关于续行 行尾加行尾加 _ _2.2.赋值语句赋值语句 VBA VBA中使用赋值号中使用赋值号“=”对变量进行赋值。赋值语句对变量进行赋值。赋值语句的格式如下:的格式如下:Let Let=12.2.5 程序流程控制程序流程控制12.2 VBA基础知识基础知识3.3.交互式输入输出交互式输入输出(1)Inputbox(1)Inputbox函数函数InputBox函数格式如下:InputBox(prompt,title,default,xpos,ypos,helpfile,context)(1)prompt:必选项,消息框显示的文本信息。(2)title:可选项,对话框标题栏的文字。默认情况下,系统把应用程序名放入标题栏中。(3)default:可选项。用于显示文本框中的字符串表达式。(4)xpos:可选项。为数字表达式,与ypos成对出现,指定对话框左侧与屏幕左侧的水平距离。如果省略xpos,则对话框会在水平方向居中。(5)ypos:可选项。为数字表达式,与xpos成对出现,指定对话框上侧与屏幕上侧的距离。如果省略xpos,则对话框显示在屏幕垂直方向距下侧大约三分之一的位置。(6)helpfile:可选项。为字符串表达式,可识别帮助文件,用该文件为对话框提供上下文相关的帮助。如果已提供helpfile,则必须提供context。(7)context:可选项。为数字表达式,由帮助文件的作者指定某个帮助主题的帮助上下文编号。12.2.5 程序流程控制程序流程控制12.2 VBA基础知识基础知识3.3.交互式输入输出交互式输入输出(2)Msgbox(2)Msgbox函数函数MsgBox(prompt,buttons,title,helpfile,context)参数说明:(1)Prompt:必需,为字符串表达式,即显示在对话框中的消息。Prompt的最大长度大约为1024个字符,由所用字符的宽度决定。(2)Buttons:可选,用来指定显示按钮的数目及形式、使用的图标样式、默认按钮是什么以及消息框的强制响应等。如果省略,则Buttons的默认值为0。(3)Title:可选,为字符串表达式,显示在对话框的标题栏中。如果省略title,则将应用程序名放在标题栏中。(4)Helpfile:可选,为字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了helpfile,则必须提供context。(5)Context:可选,数值表达式,由帮助文件的作者给适当的帮助主题指定上下文编号。如果提供了context,则必须提供helpfile。12.2.5 程序流程控制程序流程控制12.2 VBA基础知识基础知识4 4.流程控制语句流程控制语句(1)(1)选择结构语句选择结构语句 1)if 1)if语句语句 2)switch 2)switch语句语句 3)Choose 3)Choose语句语句(2)(2)循环结构循环结构 1)fornext 1)fornext循环循环 2)doloop 2)doloop循环循环 3)whilewend 3)whilewend循环循环12.2.5 程序流程控制程序流程控制12.3 VBA对象对象1.1.对象对象在面向对象系统中将一切事物(客观存在的或抽象的)都抽象或模拟为一个整体,称为对象。任何对象都有自己的特征和行为。特征是由它的各种属性来描述,行为则由事件和方法来表达。2.2.属性属性对象所具有的特征称为对象的属性。不同的对象具有不同的属性。VBAVBA是一种面向对象的编程语言,进行是一种面向对象的编程语言,进行VBAVBA开发,必须开发,必须理理解对象解对象、属性、方法和事件这几个概念、属性、方法和事件这几个概念12.3 VBA对象对象属性的引用:对象.属性名例:Text1.enabled=true3.3.方法方法方法是定义在对象上的操作,它可以对对象内的数据进行操作、可以改变对象的属性。方法是对象定义中的一部分。4.事件事件(Event)是指由系统预先定义,而后由用户或系统触发的一个动作。事件作用于对象,由对象来识别并做出相应的动作。12.3 VBA对象对象Access常见事件表事件事件触发方式触发方式打开打开(Open)打开窗体,但第一条记录尚未显示加载加载(Load)窗体打开并显示记录调整大小调整大小(Resize)窗体打开后,窗体大小被调整激活激活(Activate)窗体变成活动窗口获得焦点获得焦点(GotFocus)对象获得焦点单击单击(Click)单击鼠标左键双击双击(DblClick)双击鼠标左键鼠标按下鼠标按下(MouseDown)按下鼠标键鼠标释放鼠标释放(MouseUp)释放鼠标击键击键(KeyPress)按下并释放键盘关闭关闭(Close)窗体关闭12.3 VBA对象对象【案例1】创建一个简单窗体,要求窗体的标题栏显示为“窗体显示”。窗体中包含一个标签控件、三个复选框控件“倾斜”、“加粗”和“下划线”。单击复选框,标签控件中的文本发生相应的变化。12.4 创建创建VBA模块模块Access中的模块有两种基本类型:类模块和标准模块。模块中的每一个过程都可以是一个Function过程或一个Sub过程。12.4.1 模块的定义和创建模块的定义和创建12.4 创建创建VBA模块模块1.类模块类模块有三种基本类型:窗体类模块、报表类模块和自定义模块。窗体类模块或报表类模块:窗体类模块或报表类模块与某一窗体或报表相关联。通常窗体或报表含有事件过程,该过程用于响应窗体或报表中的事件。用户可以使用事件过程来控制窗体和报表的行为,以及它们对用户操作的响应。数据库的每一窗体或报表都有内置的窗体或报表模块。自定义模块:不与窗体和报表相关联,允许用户自定义自己的对象、属性和方法。12.4.1 模块的定义和创建模块的定义和创建12.4 创建创建VBA模块模块2.标准模块标准模块包含希望整个数据库的其他过程使用的过程,这些过程不与任何对象相关联,并且可以在数据库中的任何位置运行。【案例2】创建一个简单的标准模块。12.4.1 模块的定义和创建模块的定义和创建12.4 创建创建VBA模块模块过程是过程是VBA代码的容器。代码的容器。VBA包含三种过程:包含三种过程:子过程、子过程、Function(函数函数)过程和属性过程。过程和属性过程。1.1.子过程子过程12.4.2 过程的创建过程的创建