第8讲 模块.ppt





《第8讲 模块.ppt》由会员分享,可在线阅读,更多相关《第8讲 模块.ppt(128页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8讲讲 模块模块Access数据库程序设计数据库程序设计2内容提要内容提要n8.1 模块的基本概念模块的基本概念n8.2 创建模块创建模块 n8.3 VBA程序设计基础程序设计基础3模块的基本概念模块的基本概念模模块块是是Access中中的的一一类类重重要要对对象象,它它以以VBA(Visual Basic for Application)语语言言为为基基础础编编写写,以以函函数数过过程程(Function)或或子子过过程程(Sub)为为单单元元的的集集合合方方式式存存储储。在在Access中中,模块分为类模块和标准模块两种类型。模块分为类模块和标准模块两种类型。8.1.1 模块的组成模块
2、的组成8.1.2 类模块类模块8.1.3 标准模块标准模块8.1.4 将宏转换为模块将宏转换为模块4模块的组成模块的组成一一个个模模块块包包含含一一个个声声明明区区域域,包包含含一一个个或或多多个个子子过程过程(以以Sub开头开头)或函数过程或函数过程(以以Function开头开头):n声明区域:声明模块使用的变量等项目。声明区域:声明模块使用的变量等项目。n过过程程:包包含含VBA代代码码的的单单位位。过过程程包包含含一一系系列列的的语语句句和和方方法法,以以执执行行特特定定的的操操作作。当当过过程程附附加加在在控控件件上上时时,如如果果发发生生某某个个事事件件,则则可可以以执执行相应的过程
3、对该事件做出响应。行相应的过程对该事件做出响应。5类模块类模块n类模块是含有类定义的模块,包括其属性和方法的定义。类模块是含有类定义的模块,包括其属性和方法的定义。n窗窗体体模模块块和和报报表表模模块块都都属属于于类类模模块块,它它们们从从属属于于各各自自的的窗窗体体或或报报表表。选选择择“视视图图”|“代代码码”命命令令或或单单击击工工具具栏栏上上的的“代码代码”按钮,可以进入相应的模块代码设计区域。按钮,可以进入相应的模块代码设计区域。n窗窗体体模模块块和和报报表表模模块块通通常常都都含含有有事事件件过过程程,而而过过程程的的运运行行用于响应窗体或报表上的事件。用于响应窗体或报表上的事件。
4、n为为窗窗体体或或报报表表创创建建第第一一个个事事件件过过程程时时,Access将将自自动动创创建建与之关联的窗体模块或报表模块。与之关联的窗体模块或报表模块。n窗窗体体模模块块和和报报表表模模块块具具有有局局部部特特性性,其其作作用用范范围围局局限限在在所所属属窗窗体体或或报报表表内内部部,而而生生命命周周期期则则是是伴伴随随着着窗窗体体或或报报表表的的打开而开始、关闭而结束。打开而开始、关闭而结束。6标准模块标准模块n标标准准模模块块一一般般用用于于存存放放供供其其他他Access数数据据库库对对象象使使用用的的公公共共过过程程。在在Access中中可可以以通通过过创创建建新新的的模块对象
5、而进入其代码设计环境。模块对象而进入其代码设计环境。n标标准准模模块块通通常常安安排排一一些些公公共共变变量量或或过过程程,供供类类模模块块里里的的过过程程调调用用。在在各各个个标标准准模模块块内内部部也也可可以以定定义私有变量和私有过程,仅供本模块内部使用。义私有变量和私有过程,仅供本模块内部使用。n标标准准模模块块中中的的公公共共变变量量和和公公共共过过程程具具有有全全局局特特性性,其其作作用用范范围围在在整整个个应应用用程程序序里里,生生命命周周期期伴伴随随着着应用程序的运行而开始、关闭而结束。应用程序的运行而开始、关闭而结束。7将宏转换为模块将宏转换为模块在在Access中,可以将设计
6、好的宏转换为中,可以将设计好的宏转换为模块代码形式。模块代码形式。n如果需要代码与窗体或报表保存在一如果需要代码与窗体或报表保存在一起,则从相关的窗体或报表的设计视起,则从相关的窗体或报表的设计视图中转换。图中转换。n如果希望代码可被整个数据库使用,如果希望代码可被整个数据库使用,则从数据库窗口的则从数据库窗口的“宏宏”对象窗口中对象窗口中直接转换。直接转换。8将宏转换为模块将宏转换为模块【例例8.1】将将“选课信息查询选课信息查询”窗体中的宏转窗体中的宏转换为模块代码。换为模块代码。9将宏转换为模块将宏转换为模块【例例8.2】将将“选课信息查询选课信息查询”窗体中的宏转窗体中的宏转换为标准模
7、块代码。换为标准模块代码。10创建模块创建模块过程是模块的单元组成,由过程是模块的单元组成,由VBA代码编写而成。代码编写而成。过程分为两种类型:过程分为两种类型:Sub子过程和子过程和Function函数函数过程。过程。n在模块中加入过程在模块中加入过程在窗体或报表的设计视图中,单击工具栏上在窗体或报表的设计视图中,单击工具栏上的的“代码代码”按钮,可以进入类模块的设计和按钮,可以进入类模块的设计和编辑窗口。编辑窗口。单击数据库窗口的单击数据库窗口的“模块模块”对象窗口中的对象窗口中的“新建新建”按钮,可进入标准模块的设计和编辑按钮,可进入标准模块的设计和编辑窗口。窗口。11在模块中加入过程
8、在模块中加入过程nSub过程执行一系列操作,无返回值。过程执行一系列操作,无返回值。定义格式定义格式 Sub 过程名过程名(形参列表形参列表)程序代码程序代码 End Sub调用方法调用方法 过程名过程名 实参列表实参列表 或或 Call 过程名过程名(实参列表实参列表)12在模块中加入过程在模块中加入过程nFunction过程执行一系列操作,有返回值。过程执行一系列操作,有返回值。定义格式定义格式 Function 过程名过程名(形参列表形参列表)As 类型类型 程序代码程序代码 过程名过程名=表达式表达式 End Function调用方法调用方法 过程名过程名(实参列表实参列表)13在模块
9、中执行宏在模块中执行宏在模块的过程定义中,使用在模块的过程定义中,使用DoCmd对象的对象的RunMacro方法,可以执行设计好的宏。方法,可以执行设计好的宏。n调用格式调用格式DoCmd.RunMacro MacroName,RepeatCount,RepeatExpressionn执行方式:如果存在执行方式:如果存在RepeatExpression,则先,则先判断表达式结果是否为判断表达式结果是否为True,为,为True则重复执则重复执行名为行名为MacroName的宏的宏RepeatCount次次(默认默认为为1),为,为False则停止执行宏。则停止执行宏。14VBA程序设计基础程序
10、设计基础VBA是是Office的内置编程语言,在的内置编程语言,在Access程序设计程序设计中,当某些操作用其他中,当某些操作用其他Access对象实现起来很困难对象实现起来很困难时,可以利用时,可以利用VBA编写代码,完成这些复杂任务。编写代码,完成这些复杂任务。8.3.1 面向对象程序设计的基本概念面向对象程序设计的基本概念8.3.2 VBA编程环境:编程环境:VBE界面界面8.3.3 VBA编程基础:常量、变量、运算符和表达式编程基础:常量、变量、运算符和表达式8.3.4 VBA程序流程控制语句程序流程控制语句8.3.5 过程调用和参数传递过程调用和参数传递15面向对象程序设计的基本概
11、念面向对象程序设计的基本概念n类与对象类与对象类类是具有相同属性和相同操作功能的对象的集合,是具有相同属性和相同操作功能的对象的集合,对象对象是类的实例。是类的实例。例如,飞行器类包含位置、速度、颜色等属性,以例如,飞行器类包含位置、速度、颜色等属性,以及起飞、降落、加速等操作。一架波音及起飞、降落、加速等操作。一架波音777客机和客机和一架一架F22猛禽战斗机是飞机类的两个实例。猛禽战斗机是飞机类的两个实例。Access包含表、查询、窗体、报表、数据访问页、包含表、查询、窗体、报表、数据访问页、宏、模块七个类。在数据库窗口中单击其中的一个宏、模块七个类。在数据库窗口中单击其中的一个类,利用类
12、,利用“新建新建”按钮可以创建该类的对象。按钮可以创建该类的对象。16面向对象程序设计的基本概念面向对象程序设计的基本概念n属性与方法属性与方法属性描述了类的静态特征属性描述了类的静态特征(性质性质),方法描述了,方法描述了类的动态特征类的动态特征(行为行为)。例如,一架波音。例如,一架波音777客客机是飞机类的一个具体对象,它具有位置、机是飞机类的一个具体对象,它具有位置、速度、颜色、容量等属性,以及起飞、降落、速度、颜色、容量等属性,以及起飞、降落、加速、维修等行为。加速、维修等行为。对象是类的实例,类是同种对象的抽象综合,对象是类的实例,类是同种对象的抽象综合,是创建对象的模板。在程序中
13、创建一个对象是创建对象的模板。在程序中创建一个对象将在内存中开辟一块空间,其中包括该对象将在内存中开辟一块空间,其中包括该对象的属性和方法。其引用方式为:的属性和方法。其引用方式为:对象对象.属性属性 或或 对象对象.方法方法17面向对象程序设计的基本概念面向对象程序设计的基本概念Access除了提供七个对象类外,还提供了一除了提供七个对象类外,还提供了一个重要的对象:个重要的对象:DoCmd。通过调用该对象。通过调用该对象的方法可以快速实现许多常用操作。的方法可以快速实现许多常用操作。例如:例如:DoCmd.OpenForm 学生信息浏览学生信息浏览n事件处理:如果用户在对象上执行了一个动作
14、,事件处理:如果用户在对象上执行了一个动作,这将导致一个事件的发生。例如,在按钮对象这将导致一个事件的发生。例如,在按钮对象上单击鼠标将导致上单击鼠标将导致Click事件的发生。可以使用事件的发生。可以使用宏或编写宏或编写VBA代码来作为事件处理代码来作为事件处理(响应响应)过程。过程。Access的主要对象事件参考的主要对象事件参考P283表表8.1。18【例例8.3】新建窗体,并在其上放置一个命令按钮,新建窗体,并在其上放置一个命令按钮,然后创建该命令按钮的然后创建该命令按钮的“单击单击”事件响应过程。事件响应过程。面向对象程序设计的基本概念面向对象程序设计的基本概念19面向对象程序设计的
15、基本概念面向对象程序设计的基本概念该事件响应过程该事件响应过程只能被同一模块只能被同一模块中的其他过程所中的其他过程所访问访问20VBA编程环境编程环境标准工具栏标准工具栏工程窗口工程窗口属性窗口属性窗口注意:只有在数据库窗口中选中对象或在设计视图中注意:只有在数据库窗口中选中对象或在设计视图中打开对象,才能在属性窗口中显示该对象的属性打开对象,才能在属性窗口中显示该对象的属性代码窗口代码窗口21VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n标准数据类型标准数据类型数据类型数据类型 类型标识类型标识 符号符号取值范围取值范围整型整型Integer%-32768
16、32767长整型长整型Long&-21474836482147483647单精度型单精度型Single!1.401298E-453.402823E38双精度型双精度型Double#4.94065645841247E-3241.79769313486232E308货币型货币型Currency-922337203685477.5808922337203685477.5807字符串型字符串型String$0字符字符65500字符字符布尔型布尔型BooleanTrue或或False日期型日期型Date100年年1月月1日日9999年年12月月31日日变体类型变体类型Variant由最终的数据类型而定由
17、最终的数据类型而定22VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n常量常量程序在运行时其值始终保持不变的量程序在运行时其值始终保持不变的量字符串常量放在一对字符串常量放在一对内,日期型常量放在内,日期型常量放在一对一对#内。如内。如“China、#3/25/2009#等。等。符号常量是用标识符表示的常量,可用符号常量是用标识符表示的常量,可用Const关键字定义符号常量。例如:关键字定义符号常量。例如:Const PI=3.14159系统提供的内部常量可通过执行系统提供的内部常量可通过执行“视图视图”|“对象浏览器对象浏览器”命令进行查看。命令进行查看。23
18、VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n变量变量程序在运行时其值可以改变的量程序在运行时其值可以改变的量命名规则:命名规则:同字段命名规则类似,但变量名不允许包同字段命名规则类似,但变量名不允许包含空格或除下划线以外的任何其他标点符含空格或除下划线以外的任何其他标点符号。号。变量名不能与变量名不能与VBA的关键字相同。的关键字相同。变量命名不区分大小写。变量命名不区分大小写。24VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式变量声明变量声明显式声明:显式声明:声明符声明符 变量名变量名 As 类型类型 例如:例如:Dim
19、num As Integer Dim x As Single,y As Double隐式声明:未经声明而直接使用变量,其隐式声明:未经声明而直接使用变量,其类型为类型为Variant。例如:例如:m=528思考:思考:(1)Dim k 中的变量中的变量k的数据类型是什么的数据类型是什么?(2)n%=911 中的变量中的变量n的数据类型是什么的数据类型是什么?25VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式变量的作用域变量的作用域局部变量:在过程内用局部变量:在过程内用Dim或或Static声明的变量,声明的变量,只能在本过程中使用。可以在不同过程中声明只能在本
20、过程中使用。可以在不同过程中声明相同名字的局部变量而互不影响。相同名字的局部变量而互不影响。模块级变量:在模块的声明区域中用模块级变量:在模块的声明区域中用Dim或或Private声明的变量,可被本模块的任何过程访声明的变量,可被本模块的任何过程访问,但其他模块却不能访问该变量。问,但其他模块却不能访问该变量。全局变量:在模块的声明区域中用全局变量:在模块的声明区域中用Public声明声明的变量,可被本应用程序的任何过程所访问。的变量,可被本应用程序的任何过程所访问。26VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式变量的生存期:是指变量在这一期间能够保持自变量
21、的生存期:是指变量在这一期间能够保持自己的值。己的值。在应用程序的生存期内一直保持模块级变量和在应用程序的生存期内一直保持模块级变量和全局变量的值。全局变量的值。用用Dim声明的局部变量仅当过程执行期间存在,声明的局部变量仅当过程执行期间存在,当一个过程执行完毕,它的局部变量所占据的当一个过程执行完毕,它的局部变量所占据的内存随即释放。当下一次执行该过程时,它的内存随即释放。当下一次执行该过程时,它的所有局部变量将重新初始化所有局部变量将重新初始化(数值型为数值型为0,字符,字符串型为空字符串串型为空字符串“”)。用用Static声明的局部变量在过程执行完毕后所声明的局部变量在过程执行完毕后所
22、占据的内存不释放。占据的内存不释放。27VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式【例例8.4】新建窗体,并在其上放置两个命令按钮新建窗体,并在其上放置两个命令按钮btn1和和btn2,它们的,它们的“单击单击”事件响应过程如下所示。事件响应过程如下所示。Private Sub btn1_Click()Dim count1 As Integer count1=count1+1 MsgBox count1End SubPrivate Sub btn2_Click()Static count2 As Integer count2=count2+1 MsgBox
23、count2End Sub分析:分别单击按钮分析:分别单击按钮btn1和和btn2,弹出的消息框中显,弹出的消息框中显示的信息有何不同?示的信息有何不同?28VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n数组数组定定义义:一一组组具具有有相相同同名名字字不不同同下下标标的的变变量量构构成了数组。组成数组的变量称为数组元素。成了数组。组成数组的变量称为数组元素。例例如如:score(0)、score(1)、score(2)、score(3)为为具具有有相相同同名名字字score,不不同同下下标标i(i=0,1,2,3)的的一一组组变变量量,称称其其为为数数组组s
24、core。组组成成数数组组的的变变量量score(i)为数组元素,为数组元素,i称为下标。称为下标。数数组组分分为为静静态态数数组组和和动动态态数数组组,必必须须先先声声明明后使用。后使用。29VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式静态数组:在声明时确定大小,其声明形式为:静态数组:在声明时确定大小,其声明形式为:一维数组一维数组 Dim 数组名数组名(下标下限下标下限 To 下标上限下标上限)As 类型类型 其其中中若若省省略略下下标标下下限限 To,则则系系统统默默认认下下标标下下限限为为0;若若省省略略As 类类型型,则则数数组组元元素素类类型型为
25、为Variant。例如:例如:Dim score(50)As Integer 声声明明了了一一维维数数组组score,它它包包含含score(0)、score(1)、score(50)共共51个个元元素素,每每个个元元素素都都是是Integer类型的变量。类型的变量。思考:思考:Dim ary(1 To 10)数组包含的元素个数及类型?数组包含的元素个数及类型?30VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式多维数组多维数组 Dim 数组名数组名(下标下标1,下标下标2,下标下标n)As 类型类型 例如:例如:Dim ary(1,2)As Integer 声明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8讲 模块

限制150内