版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Access2003数据库教程,2,Access2003数据库教程,第1章 数据库系统概述 第2章 Access 2003数据库系统的基本概念 第3章 重要的表操作 第4章 查询 第5章 创建实用窗体 第6章 报表 第7章 数据访问页的设计 第8章 宏 第9章 模块 第10章 查询综合例题,3,第9章 模块,9.1模块的基本概念 9.2创建模块 9.3 VBA程序设计基础 9.4 VBA应用实例 本章小结,4,9.1模块的基本概念,9.1.1模块的分类 9.1.2模块的组成 9.1.3模块与宏的区别 9.1.4将宏转换为模块,5,9.1.1模块的分类,类模块 类模块是可以定义新对象的模块。 A
2、ccess中的类模块可以独立存在,也可以与窗体和报表同时出现。窗体和报表模块都是类模块,而且它们都从属于各自的窗体或报表。 窗体和报表模块通常都含有事件过程,用户可以使用事件过程来控制窗体或报表的行为,以及它们对用户操作的响应。窗体和报表模块的作用范围都是局限在所属的窗体或者报表内部,它的生命周期是伴随着窗体或者报表的打开而开始、关闭而结束。,6,标准模块 标准模块包含的是通用过程和常用过程,通用过程是不与任何对象相关联的过程,常用过程可以在数据库中的任何位置执行。 标准模块通常是放置一些公共变量和公共过程,这些公共的变量和过程既可以提供给类模块里的过程调用,也可提供给别的标准模块里的过程调用
3、,但是在标准模块里定义的私有变量和私有过程只能供本模块使用。 标准模块中公共变量和公共过程的作用范围都是整个应用程序,它的生命周期是伴随着应用程序的运行而开始、关闭而结束。,7,9.1.2模块的组成,1声明部分 可以在声明部分定义变量、常量、自定义类型和外部过程。在模块中声明部分和过程部分是分割开来的,声明部分定义的常量和变量是全局的,可以被模块中所有过程调用。 2事件过程部分 事件过程是一种自动执行的过程,用来对用户或者程序代码启动的事件或系统触发的事件做出响应,事件过程又分为子(Sub)过程和函数(Function)过程。,8,(1)子(Sub)过程: Sub 过程名 程序代码 End S
4、ub ()函数(Function)过程: Function 过程名As 数据类型 程序代码 End Function 在定义函数过程或者子过程的时候,在关键字Sub或者Function的前面可以加上Public或者Private来说明过程是公有的还是私有的,私有过程在别的模块中不能被调用。能否返回值,是子过程和函数过程之间的根本区别。,9,9.1.3模块与宏的区别,模块与宏的联系与区别 使用“宏”更加简单,不需要编程,而使用“模块”,要求对编程有基本知识,比较复杂。 模块的运行速度比较快,而“宏”运行速度比较慢。 宏的每个基本操作在VBA中都有相应的等效命令,如果在“模块”中使用这些语句就可以
5、实现所有的单独的“宏”命令,所以“模块”的功能比“宏”更加强大。,10,模块的功能 数据库的事务处理操作:可以将事件的过程建立在窗体和报表的定义中,更有利于数据库的维护,“宏”是独立于窗体和报表之外,所以维护相对困难。 创建自定义函数:使用自定义函数就可以避免编写复杂的表达式。 错误处理:可以检测并进行提示。这样就有更友好的用户界面,对用户的下一步操作提供帮助。 复杂程序处理:可以编写选择结构、循环结构等复杂程序。,11,9.1.4将宏转换为模块,Access中的每一个宏操作都有自己对应的等效的VBA代码,根据需要我们可以把宏转换为模块。,12,在“工具”菜单“宏”选项“将宏转换为Visual
6、 Basic代码”,弹出一个对话框如下所示:,13,宏转换为模块的结果,14,宏转换生成的模块代码,15,9.2 创建模块,9.2.1创建类模块 9.2.2创建标准模块 9.2.3 VBA编辑环境,16,9.2.1创建类模块,类模块的创建过程主要有以下两种方法。 方法一:定位窗体、报表或者其中的某一个控件,单击工具 栏“代码”按钮。 方法二:通过窗体、报表或者控件“属性”窗口中“事件”选项卡的“事件过程”项进入。,17,9.2.2创建标准模块,标准模块的创建过程主要有以下两种方法: 方法一:在数据库窗体选择“模块”对象,单击数据库窗口上边的“新建”按钮。 方法二:在数据库对象窗口中,单击“工具
7、”菜单“宏”“Visual basic编辑器”。,18,9.2.3 VBA编辑环境,代码窗口,19,9.3 VBA程序设计基础,9.3.1面向对象程序设计的基本概念 9.3.2 VBA编程基础 9.3.3 VBA程序流程控制语句 9.3.4过程调用和参数传递,20,9.3.1面向对象程序设计的基本概念,1类和对象的概念 类是对象的抽象表示方法,是具有属性相同的所有对象的集合。对象是类创建的一个实体。 在Access窗体和报表上的所有元素都可以看成一个对象,比如窗体本身、节或者各个控件,他们都是窗体中的对象。所有的对象都具有属性或者方法。 2属性和方法 属性:是描述对象的特性。它定义了对象的特征
8、,诸如大小、颜色或屏幕位置,或某一方面的行为。 方法:指的是对象能执行的动作。 对象的属性或者行为的引用格式是:对象.属性或者行为,21,表9.3.1 控件常用属性说明,22,在Access中除了我们看到的窗体、报表和控件以外,还有一个在VBA编程时常用的对象:DoCmd对象。DoCmd对象主要是通过其方法来实现VBA编程中对Access其他对象的操作。DoCmd对象最常用的行为有以下几个: 用于打开报表:DoCmd.OpenReport ReportName, 用于打开窗体:DoCmd.OpenForm FormName, 用于关闭其他对象:DoCmd.Close objectType, o
9、bjectName,,23,3.事件和事件过程 事件:是一个对象可以辨认的动作,像单击鼠标或按下键盘上某个按键等,并且可以写某些代码针对此类动作来做响应。用户做动作或者程序代码的结果可能导致事件发生,或是由系统引发。描述事件发生以后所完成的指定动作的代码叫事件过程,或者叫事件响应代码。,24,9.3.2 VBA编程基础,1VBA 的数据类型 数据类型可以分为数值型、布尔型、日期型、字符型、对象型、变体型和用户自定义的数据类型。Access中数据表中的数据存储类型与VBA中的数据类型几乎都可以找到对应和匹配。,25,2变量 变量是用于程序运行时保存临时信息的。也可以是用户自定义的数据类型。 (1
10、)变量的命名原则: 第一个字母必须是英文字母。 不能在变量名中使用空格、句点(下划线“_”除外) 等标点符号。 变量名的长度不能超过255个字符。 变量名不区分大小写。 不能在某一范围内的相同层次中使用重复的变量名。 变量不能与函数名、过程名相同。,26,(2) 变量的声明 Dim/ Private/ Static Public藏“变量名” As “变量类型” 例:Dim Num As Integer Num是显式变量 NewNum12345 隐式变量,数据类型为变体型 NewNum12345 隐式变量,数据类型为整型,27,用Dim和使用Private来声明的变量都是私有的,但是使用Priv
11、ate可以更容易对程序的读写和解释。如在模块的声明部分使用Dim或者Private来声明变量,该变量可以在本模块的任何过程使用,但是不能在别的模块使用;如果在过程内部使用Dim或Private,该变量只能在本过程使用。 使用Public语句声明的变量是公有的,可以用于应用程序的任何过程。使用Static语句声明的变量是静态变量,即该变量在调用时仍保留它原先的值。,28,3.常量 常量的命名一般都用大写字母,主要是为了和变量名区分。有三种类型的常量: (1)符号常量 定义格式:Const符号常量名常量值 符号常量在定义的时候一定要赋值,但是不用指明常量的数据类型。 (2)固有(内部)常量 由Ac
12、cess自动定义,作为引用对象库的一部分,通过“对象浏览器”打开。 (3)系统定义常量 只有True、False、Yes、No、On、Off 和Null等几种,用户可以在任何地方直接使用系统定义常量。,29,4数组 数组中所有的元素的数据类型都是相同的,数组中可以存储的元素个数称为数组的容量。 数组分为两类:固定数组和动态数组。 固定数组声明和变量声明类似,其中数组名由数组变量名和数组下标构成。 声明格式: Dim “数组名(n)” As“类型” Static “数组名(n)” As “类型” Public “数组名(n)” As “类型” Private “数组名(n)” As “类型”,3
13、0,说明:括号中n代表数组的上界,默认的下界为0,这样的数组容量为n+1。如果要以1为下界,可以用“1 to n”代替括号中的n,如果要定义多维数组,可以用“n1,n2”代替括号中的n。例如: Dim NewArray1(5) As integer一维数组,容量为6 Dim NewArray2(3 to 6) As integer一维数组,容量为4 Dim NewArray3(3 , 5) As integer 二维数组,容量为24,31,5常用操作函数 在VBA编程过程中,经常用到以下的几个函数,如InputBox函数、MsgBox函数和DLookup函数等。下面分别介绍这三个常用函数的使用
14、方法。 (1)InputBox函数 格式:InputBox(prompt, title , default , xpos , ypos , helpfile, context),32,InputBox函数也称为“输入框”,是用对话框来显示提示信息,等待用户输入文本或单击按钮,并返回字符串,其中包含文本框的内容。,33,(2)MsgBox函数 格式: MsgBox(prompt, buttons , title , helpfile, context),也称为“消息框”,在对话框中显示消息,并等待用户单击按钮,然后返回一个 Integer 值,该值指示用户单击了哪个按钮。,34,(3) DLoo
15、kup函数 格式:DLookup(Expr, Domain, Criteria) 使用 DLookup 函数可以从指定记录集(域)中获得特定字段的值。可以在 Visual Basic、宏、查询表达式、窗体或报表上的计算控件中使用 DLookup。可以使用该函数为窗体或报表显示不在记录源中的字段的值。,Expr:此表达式标识要返回其值的字段。它可以是标识表或查询中的字段的字符串表达式,也可是对该字段中的数据执行计算的表达式。在 Expr 中,可以包含表中的字段的名称、窗体上的控件、常量或函数。如果 Expr 包含一个函数,该函数可以是内置函数或用户定义的函数,但不能是另一个域聚合函数或 SQL
16、聚合函数。,Domain:字符串表达式,可以是表名称或不需要参数的查询的查询名称。说明查找的数据范围是哪一个表或者查询。,Criteria:可选字符串表达式,用于限制对其执行 DLookup 函数的数据的范围。如果省略 Criteria,DLookup函数将针对整个记录集(域)计算 Expr。任何包含在 Criteria 中的字段必须也是 Domain 中的字段;否则 DLookup 函数将返回 Null。,35,9.3.3 VBA程序流程控制语句,1.条件判定语句 条件判定语句的执行方式是:根据给定的判定条件,当条件成立时执行相应的语句,当条件不成立时执行另外的语句。VBA中的条件判定语句主
17、要有三种: (1) If Then 语句:其结构形式如下: If Then End if,36,(2) If Then Else 语句:其结构型是如下: If Then ElseIf Then Else End If,37,(3) Select Case语句 Select Case Case Case Case to Case Is Case Else End Select,说明:先把Select Case后面的检验表达式跟Case子句后面的各个表达式进行比较,如果找到一个Case子句后面的表达式与检验表达式相互匹配,则执行该Case子句后面的语句系列,如果所有的Case子句后面的表达式与检验
18、表达式都不匹配,则执行Case Else子句后面的语句系列。,38,2.循环控制语句 循环控制语句用于控制某段程序重复运行。 (1) Do While /Until Loop语句: 该语句有两种结构,他们分别是: 结构一: Do While/Until Loop 结构二: Do Loop While/Until,39,(2) For Next语句: 语句结构: For 循环变量=初值 To 终值 Step 步长 Next 循环变量 说明:For Next语句主要是在循环次数已经知道的情况下使用,如果程序运行之前循环次数不确定,一般情况下都使用do while(或者until) Loop语句。,
19、40,*9.3.4过程调用和参数传递,VBA模块中的Sub过程和Function过程是有区别的,Sub过程运行以后没有返回值,而Function过程运行结束后可以返回某种数据类型的返回值。Sub过程和Function过程的调用形式不同。 (1)Sub过程的调用形式: 形式一:Call 过程名 (实参列表) 形式二:过程名 实参列表 (2)Function过程的调用形式:函数过程名(),41,调用含有参数Sub过程和Function过程时,必须提供形参和实参,形参是过程定义中用到的参数,实参是调用过程语句中给出的参数。调用时将实参传递给形参,传递有两种方式:按值传送和按地址传送。,42,按值传送: 实参和形参各有自己的存储单元,调用过程时实参值被复制到形参存储单元中,在调用过程中形参值的变化不会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目落实效果承诺书4篇
- 项目名称质量保障承诺书(3篇)
- 工作活动风险防范责任承诺函7篇
- 企业会议管理制度与会议纪要模板
- 智能家居系统基础操作与维护手册
- 营销活动策划执行清单市场活动成功保障
- 企业费用报销审核流程手册
- 健康养生旅游承诺函6篇
- 技术研发诚信行为责任承诺书(8篇)
- 销售流程与跟进模板
- 充装站安全绩效考核制度
- 2025年高考贵州卷物理真题(试卷+解析)
- 2026年高速公路安全驾驶培训
- 特殊作业奖惩制度范本
- 2026年2026江苏省人民医院心血管内科打字员招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- GB/T 46871-2025二氧化碳捕集、运输和地质封存提高原油采收率的二氧化碳封存
- 大平层户型设计方案
- 2025年金融市场基础知识真题及答案
- GB/T 5563-2025橡胶和塑料软管及软管组合件静液压试验方法
- 云南省茶叶出口竞争力分析及提升对策研究
- 屠宰企业食品安全知识培训课件
评论
0/150
提交评论