Access第七章模块解析.ppt_第1页
Access第七章模块解析.ppt_第2页
Access第七章模块解析.ppt_第3页
Access第七章模块解析.ppt_第4页
Access第七章模块解析.ppt_第5页
免费预览已结束,剩余114页可下载查看

下载本文档

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

文档简介

1、第七章 VBA编程基础,本章考点,在模块中加入过程(Sub过程和Function过程) 面向对象程序设计的概念(掌握属性、事件、方法) VBA编程基础(理解变量、数组和表达式及其优先级) VBA流程控制语句(重点掌握条件语句和循环语句) 过程调用和参数传递 常用的操作方法和函数(掌握常用函数以及文本框、消息框和计时器的使用) VBA数据库编程(掌握VBA数据库编程和SQL语句的使用),VBA编程基础,7.1 VBA编程环境 7.2 VBA模块 7.3 VBA程序设计基础 7.4 VBA流程控制语句 函数过程和子过程 7.5 面向对象程序设计基础-常量,变量 7.6过程调用和参数传递 7.7 V

2、BA常用操作 7.8 VBA用户定义类模块创建和引用 消息框,计时器 7.9 VBA程序运行错误处理,为什么要用模块?,Access的表、查询、窗体、报表和数据访问页不能相互驱动和调用。使用模块和宏可以将数据库中所有对象联系起来、统一管理,形成完整的数据库系统。 宏的局限性: 只能处理一些简单操作 对数据库对象的处理能力很弱(例如表,查询),7.1 模块的基本概念,模块是Access的数据库中的一个重要对象。 模块是由VBA(Visual Basic for Applications)语言编写的程序的集合。是以函数过程(Function)或子过程(Sub)为单元的集合方式存储。作为模块主要是为

3、了多次调用。 模块可分成两种基本类型:类模块和标准模块,7.1.1 类模块,窗体模块和报表模块是类模块的典型例子。 窗体和报表模块通常都含有事件过程,该过程用于响应窗体或报表中的事件,可以使用事件过程来控制窗体或报表的行为,以及它们对用户操作的响应。 窗体模块和报表模块中的过程可以调用标准模块中已经定义好的过程。 窗体模块和报表模块具有局部特性,其作用局限在所属窗体或报表内部,而生命周期则是伴随着窗体的打开而开始、关闭而结束。,7.1.2 标准模块,标准模块一般用于存放供其它Access数据库对象使用的公共过程。 在Access中,可以通过创建新的模块对象而进入其代码设计过程。 标准模块通常安

4、排一些公共变量或过程供类模块里的过程调用。在各个标准模块内部也可以定义私有变量和私有过程仅供本模块内部使用。 标准模块中的公共变量和公共过程具有全局特性,其作用范围在整个应用程序里,生命周期是伴随着应用程序的运行而开始、关闭而结束。,7.1.3 将宏转换成模块,窗体或报表中的宏 ()在设计视图中打开窗体或报表; ()工具菜单宏“将窗体的宏转换为Visual Basic代码”或“将报表的宏转换为Visual Basic代码”; ()单击“确定”按钮 在模块中执行宏 DoCmd.RunMacro MacroName,7.2 创建模块,一、在模块中加入过程 模块是由过程组成 过程:将VBA语言的声明

5、和语句集合在一起,作为一个命名单位的程序段(执行特定功能的语句块)。它包含许多语句和方法,以执行特定的操作或计算数值。 过程的二种类型: sub子过程:执行一系列操作的过程。 function函数过程:特殊的、能返回值的函数过程。 区别方法:能否返回值,是过程和函数之间最大的区别。,Sub子过程,也称为Sub过程,是执行一项操作的过程。 子过程没有返回值,子程序以关键字Sub开始,并以End Sub语句作为结束。 可以引用过程名调用,或使用关键字Call 子过程格式: Sub 子程序名() 程序代码 End Sub,考试中的重点内容,也是常见的内容 在窗体中有两个文本框分别为Text1和Tex

6、t2,一个命令按钮Command1,编写如下两个事件过程: Private Sub Command1_Click( ) a = Text1.Value + Text2.Value MsgBox a End Sub Private Sub Form_Load( ) Text1.Value = “” Text2.Value = “” End Sub 程序运行时,在文本框Text1中输入78,在文本框中Text2输入87,单击命令按钮,消息框中输出的结果为 【 】,Function过程,函数过程:也称为Function过程,是一种能够返回具体值的过程,返回的值可以在表达式中使用。 函数过程以关键字F

7、unction开始,并以End Function语句作为结束。 不能使用call调用,直接引用函数过程名,函数名后要加括号。,函数格式: Function 函数名称() as 返回值的数据类型 程序代码 End Function,在窗体中有一个命令按钮Command1,编写事件代码如下: Private Sub Command1_Click() Dim s As Integer s = p(1) + p(2) + p(3) + p(4) debug.Print s End Sub Public Function p (N As Integer) Dim Sum As Integer Sum =

8、 0 For i = 1 To N Sum = Sum + 1 Next i P = Sum End Function 打开窗体运行后,单击命令按钮,输出的结果是 A)15 B)20 C)25 D)35,1+(1+2)+(1+2+3)+ (1+2+3+4),二、在模块中执行宏 在模块的定义过程中,使用Docmd对象的RunMacro方法可以执行设计好的宏 Docmd.RunMacro MacroName ,RepeatCount,RepeatExpression,1、在Access中,如果要处理具有复杂条件或循环结构的操作,则应该使用的对象是 A 窗体 B模块 C宏 D报表 2、Sub过程和F

9、unction过程最根本的区别是 A Sub过程的过程名不能返回值,而Function过程能通过过程名返回值 B Sub过程可以使用Call语句或直接使用过程名调用,而Function过程不可以 C 两种过程参数的传递方式不同 D Function过程可以有参数,Sub过程不可以,7.3 VBA程序设计基础,VBA是微软Office套件内置的编程语言,语法与VISUAL BASIC兼容。 7.3.1 面向对象程序设计的基本概念 1. 对象 在VBA程序设计时,界面上的所有事物都可以称为对象。每一个对象都有自己的属性、方法和事件。用户是通过属性、方法和事件来处理对象的。,2. 属性和方法 属性和

10、方法:描述了对象的性质和行为。 引用:对象名.属性 或 对象名.方法参数名表 对象的属性 例:label0.caption=“学生成绩表” 对象的方法 例: text1.setfocus (获取焦点) 如若是text2.setfoucs,则显示的是光标在文本2那里 DoCmd对象:有许多方法。如Openform 打开窗体 例如:DoCmd.Openform “学生登记” RunMacro运行宏操作等, 例如:Docmd.RunMacro “mac1”,3.事件和事件过程 事件就是窗体或者报表中对象可以识别的动作,1、下列过程的功能是:通过对象变量返回当前窗体的Recordset属性记录集引用,

11、消息框中输出记录集的记录(即窗体记录源)个数。 Sub GetRecNum () Dim rs as Object Set rs=Me.Recordset Msgbox _ End Sub 程序空白处应填写的是(2009.9) A Count B rs.Count C RecordCount D rs.RecordCount 2、Access的窗体或报表时间可以有两种方法来响应:宏对象和事件过程。,7.3.2 Visual Basci编辑环境,一、VBA编程环境,二、进入VBE编程环境 三、VBE环境中编写VBA代码 例7.1 新建窗体并添加一个按钮,单击该按钮,弹出对话框显示信息 (1)新建

12、一个窗体添加一个名为cmdTest的按钮 (2)按钮属性事件单击()代码生成器,(3)确定编写代码 第一张图片 msgx信息提示 (4)ALT+F11返回窗体界面运行窗体,查看结果,四、程序语句书写原则 1.语句书写规定 _ 续航符号:一行写不完一句程序时用来续航 : 在一行中分隔几句程序语句 2.注释 :Rem 注释语句 (变成绿色) 注释语句,7.3.3 数据类型和数据库对象,一、标准数据类型,标准数据类型,1.数值型数据的符号: 整型 %、长整型 c1, c2=; c2, c3=; c3, c4=; c4 End Sub 下面是调用这个过程 Public Sub aa() Call co

13、mpute(17, 3) 或者 computer(17,3) 调用时候括号里的叫实参 End Sub,例7.17 下面编写一个打开指定窗体的子过程 OpenForms(). 代码如下: Sub openforms(strFormName As String) If strFormName = Then MsgBox 打开窗体名称不能为空!, vbCritical, 警告 Exit Sub End If DoCmd.OpenForm strFormName End Sub Call OpenForms(“输入教师基本信息),2.函数过程的定义和调用 用Function 语句可以声明一个新函数、它

14、接受的参数、返回的变量类型及运行该函数过程的代码。其语法形式如下: Public|PrivateStaticFunction 函数名() As 数据类型 函数名= Exit Function 函数名= End Function,对函数使用Public关键字,则所有模块的所有其他过程都可以调用它。用Private关键字则使这个函数只适用于同一模块中的其他过程。当把一个函数说明为模块对象中的私有函数时,就不能从查询、宏或另一个模块中的函数调用这个函数。 包含Static关键字时,只要含有这个过程的模块是打开的,则所有在这个过程中无论是显式还是隐含说明的变量值都将被保留,例 编写一个求解圆面积的函数

15、过程Area() Public Function Area(r As Single) As Single If r = 0 Then MsgBox 圆半径必须是整数, vbCritical, 警告 Area = 0 Exit Function End If Area = 3.14 * r * r End Function 函数可以被查询,宏调用使用,调用函数 Public Sub pp() Dim s As Single s = Area(3) Debug.Print s End Sub,参数传递,形参简单定义格式为: ByVal|ByRef形参变量名as 类型标识 (1)传值调用 (2)传址

16、调用,(1)传值调用,定义子过程或函数过程时,参数名前若指定属性ByVal,则参数传递方式为按值传递,称为传值调用。 传值调用时,将实参的值传递给形参变量,形参变量值的改变不影响实参变量的值。,(2)传址调用,定义子过程或函数过程时,参数名前若指定属性ByRef,则参数传递方式为按地址传递,称为传址调用。 传址调用时,将实参的地址传递给形参变量,对形参变量的改变就是对实参变量的改变。 注意:若实参是常量、函数或表达式,则仍为传值调用。,1、在过程定义中有语句 Private Sub GetData(ByRef f as Integer) 其中ByRef的含义是 A传值调用 B传址调用 C形式参

17、数 D实际参数 2、在窗体中添加一个命令按钮,然后编写如下代码: Public x as single Private Sub Command1_Click() x=10 call s1 call s2 msgbox x End sub 打开窗体运行后,单击命令按钮, 则消息框输出结果是 A 10 B 30 C 40 D 50,Private sub s1() X=x+20 End sub Private sub s2() dim x as integer x=x+20 End sub,7.6 VBA程序运行错误处理,VBA提供On Error GoTo语句来处理错误 On Error GoTo 标号 On Error Resume Next On Error GoTo 0 一个对象Err 一个函数Error$() 一个语句Error,7.7 VBA程序的调试,一、断点 定义:在过程的某个特定语句上设置一个位置点以中断程序的执行 断点的设置与取消4种方法 “调试”工具栏/”切换断点” “调

温馨提示

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

评论

0/150

提交评论