Access2003宏和模块_第1页
Access2003宏和模块_第2页
Access2003宏和模块_第3页
Access2003宏和模块_第4页
Access2003宏和模块_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、 在在access中,除了数据表、查询、窗体、报表和数据页外,还中,除了数据表、查询、窗体、报表和数据页外,还有两个重要的对象,即宏和模块。用户不需要了解语法,也有两个重要的对象,即宏和模块。用户不需要了解语法,也不需要进行编程,只是利用几个简单的宏操作就可以将已经不需要进行编程,只是利用几个简单的宏操作就可以将已经创建的数据对象联系在一起,实现特定的功能。创建的数据对象联系在一起,实现特定的功能。 本章要点本章要点l7.1 宏的概念和基本操作宏的概念和基本操作 l7.2 宏的高级应用宏的高级应用 l7.3 visual basic简介简介 l习题习题 7 7 7.1.1宏的概念宏的概念宏是宏

2、是access 2003中执行选定任务的操作或操作集合,其中的每个操作实现中执行选定任务的操作或操作集合,其中的每个操作实现特定的功能,是由特定的功能,是由access本身提供的,有了宏可以使多个任务同时完成,使本身提供的,有了宏可以使多个任务同时完成,使单调的重复性操作自动完成。宏是一种特殊的代码,不具有编译特性,没单调的重复性操作自动完成。宏是一种特殊的代码,不具有编译特性,没有控制转换,也不能对变量直接操作。有控制转换,也不能对变量直接操作。宏也是一种操作命令,它和菜单操作命令是一样的,只是它们对数据库施宏也是一种操作命令,它和菜单操作命令是一样的,只是它们对数据库施加作用的时间有所不同

3、,作用时的条件也有所不同。菜单命令一般用在数加作用的时间有所不同,作用时的条件也有所不同。菜单命令一般用在数据库的设计过程中,而宏命令则可以在数据库中自动执行。据库的设计过程中,而宏命令则可以在数据库中自动执行。在在access中,一共有中,一共有53种基本宏操作,这些基本的宏操作还可以组合成很多种基本宏操作,这些基本的宏操作还可以组合成很多其他的其他的“宏组宏组”操作。实际上很少单独使用这些宏命令,常常是将这些宏操作。实际上很少单独使用这些宏命令,常常是将这些宏命令排成一组,按顺序执行,以完成一种特定任务。这些宏命令可以通过命令排成一组,按顺序执行,以完成一种特定任务。这些宏命令可以通过窗体

4、中控件的某个事件操作来实现,或在数据库的运行过程中自动实现。窗体中控件的某个事件操作来实现,或在数据库的运行过程中自动实现。access定义了许多的宏操作,这些宏操作可以完成以下功能。定义了许多的宏操作,这些宏操作可以完成以下功能。(1)窗体和报表中的数据处理。)窗体和报表中的数据处理。例如,移动窗口,改变窗口大小,打开、关闭表单或报表,打印报表,执例如,移动窗口,改变窗口大小,打开、关闭表单或报表,打印报表,执行查询等。行查询等。(2)数据的导入、导出。)数据的导入、导出。 (4)执行任意的应用处理模块。(5)为控制的属性赋值。7.1.2宏的创建宏的创建和创建其他的access对象一样,创建

5、宏的过程也是在设计视图中完成的。与创建其他对象不同的是,创建宏的基本操作都是由系统完成的,用户只需对其中某些属性进行设置即可。在access中如果只是建立一个小型的数据库,通过使用access丰富的宏功能完全可以实现,而无需使用更复杂的vba。创建宏和宏组的区别在于:创建宏可以用来执行某个特定的操作,创建宏组则是用来执行一系列操作。宏是access将要自动执行的任务列表,对于必须重复执行的任务应考虑创建宏,这些任务包括打开和关闭窗体、打印报表以及在窗体上设置控件值。1利用设计视图创建宏宏设计视图用于宏的创建和设计,类似于窗体的设计视图。利用宏设计试图创建宏的操作如下。 (1)打开要创建宏的数据

6、库窗口。(2)在“对象”列表中选择“宏”对象,然后单击数据库工具栏上的“新建”按钮,进入宏设计视图,如图7-1-1所示。宏设计试图的上半部分有两列,左边“操作”列为每个步骤添加操作,右边“注释”列为每个操作提供一个说明,说明数据被access所忽略。在宏的设计试图中,还隐藏了 “宏名”和“条件”两列。单击工具栏上的“宏名”按钮和“条件”按钮就可以显示这两列。(3)单击“操作”字段列的第一个单元格,再单击右侧向下箭头符号,打开宏操作下拉列表,从该列表中选择一个宏操作。(4)在设计视图的下半部分,可对所选宏操作的操作参数进行设置;同时所选定的操作的解释说明出现在设计视图的右下角。如图7-1-2所示

7、。 图7-1-1 宏设计视图窗口 图7-1-2 设置宏操作可以直接在宏的设计视图的“操作”列中输入操作名,也可以从宏操作下拉列表中选择。当添加一个操作后,应当在“注释”列中加入说明性的文字,便于将来使用时易于理解。(5)重复步骤(3)(4)的操作,直到输入所有的宏操作。在定义一个或多个宏操作后,可能需要对其中的某些操作顺序进行改变。单击操作所在行端,该行将反色显示,此时可将它拖动到想要改变的位置。2拖动数据库对象添加宏除了可以在宏的设计视图中创建宏外,还可以利用拖动数据库对象的方法完成相应的宏操作。如果要快速创建一个在指定数据库对象上执行操作的宏,可以从数据库窗口中将对象直接拖放到宏设计视图窗

8、口的操作行。(1)在数据库窗口“对象”列表中选择“宏”对象,单击“新建”按钮,打开宏的设计视图窗口。(2)单击“窗口”“垂直平铺”命令,使窗口都显示在屏幕中。如图7-1-3所示。 图7-1-3 排列所有的窗口 (3)在数据库窗口中单击要拖动的对象类型的组建选项卡,从中选取相应的数据库对象,并拖动到某个操作行内。如果拖动的是宏,则添加执行此宏的操作;如果拖动其他对象,则将添加打开相应对象的操作。如图7-1-4所示。 图7-1-4 将对象拖动到宏“设计视图”窗口 (4)单击宏设计视图窗口工具栏上的“宏名”按钮,在宏的设计视图窗口的最左侧添加一个“宏名”列,在此处可以为创建的宏命名。3保存和复制宏操

9、作前面讲述了创建宏的过程。对于宏的创建,除了需要进行保存以外,有时还需要对宏进行复制。在创建宏之后必须进行保存,否则无法将其应用到窗体或报表等数据库对象。单击工具栏上的“保存”按钮,可以保存宏。虽然在运行尚未保存的宏时,access会请求对宏进行保存,此时也可以对宏进行保存,但这样又可能造成意想不到的错误。在access中,用户可以对整个宏进行复制,也可以只对宏中的某个操作进行复制。在复制某个操作时,需要单击“行选定器”选定要复制的操作,然后再单击工具栏上的“复制”按钮将选取的内容进行复制。 7.1.3为宏操作设置条件对宏操作进行一定的条件设置是非常必要的,如果没有为宏指定任何条件,用户每次进

10、入数据库的时候,所指定的宏操作都要执行。那么就必须对宏操作设置一定的条件以控制其运行。其操作原理是:条件是逻辑表达式。宏将根据条件结果的真或假而沿着不同的路径执行。如果这个条件为真,则access将执行此行中的操作;在紧跟此操作的“条件”栏内输入省略号,就可以使access在条件为真时执行这些操作;如果这个条件为假,access则会忽略这个操作以及紧跟着此操作且在“条件”字段内有省略号的操作,并且移到下一个包含其他条件或“条件”字段为空的操作。宏条件最多可达255字符。如果条件比限定的长,可转而使用vba程序。用户可按照以下步骤对宏操作设置条件。(1)单击数据库窗口中“对象”列表中的“宏”对象

11、,用鼠标右键单击要修改的宏,在弹出的快捷菜单中选择“设计视图”命令。(2)选择需要设定条件的操作,将光标移动到该操作的“条件”行中,如果在宏设计视图中没有显示“条件”列,可以单击工具栏上的“条件”按钮,如图7-1-5所示。 (3)在选取的“条件”行中,根据需要输入相应的条件表达式。用户可以使用“表达式生成器”创建表达式,单击工具栏上的“生成器”按钮,可以打开“表达式生成器”对话框,如图7-1-6所示。 图7-1-5 显示“条件”字段 图7-1-6 “表达式生成器”对话框注意:“条件”行中的省略号表示当宏组中的条件为“真”时,可以连续执行下面的操作。 7.1.4宏的运行宏的运行在创建了宏之后,可

12、以在不同的位置上运行宏。通常有以下几种方法。(1)在数据库窗口中选择“宏”对象,双击相应的宏名运行该宏。(2)在宏的设计视图窗口中,单击工具栏的执行按钮,执行正在设计的宏。(3)在菜单栏中单击“工具”“宏”“运行宏”菜单命令,弹出“执行宏”对话框,输入要运行的宏的名称。如图7-1-7所示。(4)在窗体、报表、空间和菜单中调用宏。(5)将宏的名字设为“autoexec”,则在每次启动该数据库时,将自动执行该宏。(6)宏还可以嵌套执行,即在一个宏中可以调用另一个宏,在宏中加入操作runmacro,并将操作runmacro的参数“宏名”设为想要执行的宏,如图7-1-8所示。 图7-1-7 “执行宏”

13、对话框 图7-1-8 宏的嵌套 7.1.5常用宏操作常用宏操作access在宏操作列表中提供了53种操作。在宏中添加了某个操作之后,可以在设计视图的下部设置这个操作的参数,通过参数向access提供如何执行操作的附加信息。access常用的宏操作及其功能如表7-1-1。 7.1.6项目实现项目实现通过从宏内部运行查询并且让此宏显示包含警告消息文本的小窗体。(1)打开“学生管理”数据库,在“对象”列表中选择“窗体”对象,双击“在设计视图中创建窗体”选项,新建一个窗体,如图7-1-9所示。(2)单击工具箱中的“标签”按钮,添加一个标签至窗体,输入查询运行时所要显示的消息,如图7-1-10所示。(3

14、)单击工具栏上的“属性”按钮,调出“窗体”对话框,在对话框的“全部”选项卡中,设置此窗体的“滚动条”属性为“两者均无”,“弹出方式”属性为“是”,“记录选择器”属性为“否”,如图7-1-11所示。(4)保存并关闭该窗体,取名为“警告消息”,如图7-1-12所示。 图7-1-9 创建一个新窗体 图7-1-10 输入要显示的消息 图7-1-11 对创建的窗体进行设置 图7-1-12 保存窗体为“警告消息 (5)在)在“学生管理学生管理”数据库窗口中,选择数据库窗口中,选择“宏宏”对象,单击对象,单击“新建新建”按钮,按钮,进入宏设计视图中,单击第进入宏设计视图中,单击第1行行“操作操作”栏中的单元

15、格,然后单击向下箭头栏中的单元格,然后单击向下箭头符号,在打开的符号,在打开的“操作操作”下拉列表中选择下拉列表中选择“openform”选项,在选项,在“窗体名窗体名称称”下拉列表框中选择下拉列表框中选择“警告消息警告消息”窗体,如图窗体,如图7-1-13所示。所示。(6)单击第)单击第2行行“操作操作”栏,选择栏,选择“openquery”操作,在操作,在“操作参数操作参数”栏栏中,设置中,设置“查询名称查询名称”为想要运行的查询名,这里选择为想要运行的查询名,这里选择“学生出勤记录学生出勤记录 查查询询”,如图,如图7-1-14所示。所示。 图7-1-13 设置“openform”操作

16、图7-1-14 设置“openquery”操作 (7)单击第3行“操作”栏,选择“close”操作,在“操作参数”栏中,设置“对象类型”为“窗体”,设置“对象名称”为“警告消息”,如图7-1-15所示。(8)保存并关闭宏,取名为“宏2:警告消息”,如图7-1-16所示。 图7-1-15 设置“close”操作 图7-1-16 保存宏在access中,宏所能够完成的操作功能是十分强大的。用户可以通过建立宏组在宏中完成更多、更复杂的操作,或将宏嵌套到另一个宏或宏组以自动完成特定的任务。7.2.1创建宏组创建宏组在创建宏时,如果要将几个相关的宏结合在一起完成某项特定的复杂操作,而不希望对单个宏进行触

17、发,那么用户可以将它们组织起来构成一个宏组。宏组是在一个宏中包含若干个宏,这些宏都有各自的名称和相应的宏操作,当用户熟悉了许多宏的功能之后,可根据实际需求对宏进行不同的组合。下面介绍在access中创建宏组的方法。(1)在数据库窗口“对象”列表中选择“宏”对象,单击“新建”按钮,打开宏的设计视图窗口。(2)单击工具栏上“宏名”按钮,则在设计视图窗口中的上半部分的最左侧添加一个“宏名”列,如图7-2-1所示。(3)在新添加的“宏名”列的第1个单元格中单击,然后输入宏组的名称“宏组1”,如图7-2-2所示。 图7-2-1 显示“宏名”列 图7-2-2 输入宏组的名称 (4)在“操作”列的第1个单元

18、格中单击,然后单击向下箭头符号,在打开的下拉列表中选择“opentable”操作,在窗口的下方,选择操作参数,如图7-2-3所示。在“表名称”中选择“学生出勤记录”,在 “数据模式”中选择“增加”。(5)在“操作”列的第2个单元格中单击,然后单击向下箭头符号,在打开的下拉列表中选择“close”操作,在窗口的下方,选择操作参数,如图7-2-4所示。 图7-2-3 设置“opentable”操作参数 图7-2-4 设置“close”操作参数 在“对象类型”中选择“表”,在“对象名称”中选择“学生出勤记录”。(6)保存宏组,用刚才在第(2)步中输入的“宏名”作为宏组的名字,同时,该名字也是显示在“

19、数据库”窗口“宏”对象中的宏和宏组列表中的名字,如图7-2-5所示。 可以按照上述方法添加两个或多个宏组,每个宏组中也可以包含多个宏操作。宏组是多个宏的集中管理,如果想要使用宏组中的某个宏,不能直接使用宏的名字,要使用语法“宏组名.宏名”。 图7-2-5 保存宏组 7.2.2宏的嵌套宏的嵌套在access中,用户可以方便地完成对一个已有宏的引用,这可以节省用户的大量时间。如果要从某个宏中运行另外一个宏,可以使用runmacro操作,然后将runmacro的操作参数“宏名”设置为希望运行的宏名称。runmacro操作的效果类似于选择“工具”“宏”“运行宏”命令后再选择宏名。惟一不同之处在于选择“

20、工具”“宏”“运行宏”命令只运行一次宏,而采用runmacro操作可以多次运行宏。注意:runmacro操作除了“宏名”参数外还有两个参数,“重复次数”用来指定重复运行宏的最大次数,“重复表达式”,计算结果为“true”(-1)或“false”(0)。每次runmacro操作运行时都会计算该表达式,当结果为“false”(0)时,则停止被调用的宏。具体的方法按照以下步骤进行。图7-2-6 宏的嵌套(1)打开数据库,在“对象”列表中单击“宏”对象,在右边的列表框中选中要嵌套的宏或新建一个宏。(2)在操作列中单击单元格,在打开的下拉列表中选择“runmacro”操作,然后在窗口下方的“操作参数”栏

21、中的“宏名”文本框中设置为要引用的宏,如图7-2-6所示。 图7-2-6 宏的嵌套根据需要设置“重复次数”和“重复表达式”。利用宏的嵌套功能,用户在创建新宏时,便可以根据需要引用已创建宏中的操作了,而不用再在新建的宏中逐一添加重复操作。用户还可以在visual basic程序中完成相同的操作,只要将runmacro操作添加到visual basic程序中即可。 注意:每次调用的宏运行结束后,access都会返回到调用宏,继续进行该宏的下一个操作。用户可以调用同一宏组的宏,也可以调用另一宏组中的宏。如果在“宏名”文本框中输入某个宏组的名称,则access将运行该组中的第1个宏。 宏就是由visu

22、al basic语言编写的。要在应用程序中执行某种操作,既可以使用宏,也可以使用visual basic。尽管宏的功能非常强大,使用也非常广泛,但有些活动则必须由visual basic实现,比如当要定义自定义函数执行计算或替代复杂表达式,visual basic的运行速度要比相同功能的宏快得多。7.3.1 vba编程的基本概念编程的基本概念access 2003有支持面向对象编程的特性,可以算得上一种面向对象的关系型数据库。作为一个嵌入式二次开发引擎,vba不但可以让用户完成access本身所不具备的功能,而且使得access 2003和其他office程序共享一个公共的二次开发环境。vba

23、是宏语言版本的microsoft visual basic,它在语言级别上等价于microsoft visual basic,在运行机制上,vba是以伪代码(p-code)的形式运行的。它的功能主要通过模块来实现的,是一种面向对象的编程方法。1面向对象编程的思想vba是一种面向对象的编程方法,它具备模块化、分层化的特定,同时拥有一系列面向对象的基本特征,用户可以从中体会到面向对象编程的种种好处。(1)面向对象的基本概念:面向对象编程中有以下几个重要的概念。 对象:对象是面向对象编程的基本概念,它指由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。它可以看成是一个独立

24、的单元。 类:类是指对具有相同数据和相同操作的一组相似对象的描述。 实例:实例是由某个特定的类描述的一个具体的对象。可以说类是运行时创建对象实例的模板,按照这个模板建立的一个个具体对象,就成为类的实例。 属性:属性是类中用于描述对象特征的数据,是对客观世界实体性质的抽象。属性由属性名和属性值组成。各个对象之所以能够分开,是因为它们的属性值不完全相同,比如区分不同的圆,就是看它们的圆心和半径,改变了这些属性值,就改变了圆这个对象的基本特征。 方法:方法是对象所能执行的操作,换言之就是对象所能够提供的服务。vba中的方法(服务)由过程或函数所组成。 消息:消息是要求某个对象执行在定义它的那个类中所

25、定义的方法的规格说明。vba中定义的每个对象可以通过消息接受用户的操作并作出识别和响应。另外系统本身也能提供激活对象所需要的消息。 (2)面向对象的特点:目前存在着多种类型的面向对象编程语言,不同类)面向对象的特点:目前存在着多种类型的面向对象编程语言,不同类型的编程语言其具体事项各不相同,但它们的特点是一致的。型的编程语言其具体事项各不相同,但它们的特点是一致的。 抽象性:抽象性是指对一个类或对象需要考虑其与众不同的特征,而无抽象性:抽象性是指对一个类或对象需要考虑其与众不同的特征,而无需考虑类或对象的所有信息,以便于用户能够集中精力来使用对象的主要需考虑类或对象的所有信息,以便于用户能够集

26、中精力来使用对象的主要特征,而忽略对象的内部细节。适当的抽象可以使用户和程序员的工作得特征,而忽略对象的内部细节。适当的抽象可以使用户和程序员的工作得到简化。这是在面向对象的程序设计中普遍采用的一种策略。到简化。这是在面向对象的程序设计中普遍采用的一种策略。 封装性:封装性是指将对象等属性和方法代码都集中在一个模块中,从封装性:封装性是指将对象等属性和方法代码都集中在一个模块中,从而达到隐藏对象内部数据结构和代码细节的目的。对象好比一个黑盒子,而达到隐藏对象内部数据结构和代码细节的目的。对象好比一个黑盒子,对私有数据的访问或处理只能通过共有的方法来进行。用户可以自由使用对私有数据的访问或处理只

27、能通过共有的方法来进行。用户可以自由使用一个对象而不必理解类的内部实现方法。一个对象而不必理解类的内部实现方法。 继承性:继承性是指在面向对象的程序设计中,子类能够自动地共享基继承性:继承性是指在面向对象的程序设计中,子类能够自动地共享基类中定义的数据和方法的性质。它使得相似的对象可以共享程序代码和数类中定义的数据和方法的性质。它使得相似的对象可以共享程序代码和数据结构,从而消除了类的冗余属性和方法。据结构,从而消除了类的冗余属性和方法。 多态性:多态性是指子类对象可以像父类对象一样使用,同样的消息可多态性:多态性是指子类对象可以像父类对象一样使用,同样的消息可以发给父类对象也可以发给子类对象

28、。不同的对象按照它所属的类来动态以发给父类对象也可以发给子类对象。不同的对象按照它所属的类来动态选用方法来响应。选用方法来响应。此外,面向对象还具有重载等特点,有兴趣的用户可以参考专门描述面向此外,面向对象还具有重载等特点,有兴趣的用户可以参考专门描述面向对象方法的书籍。对象方法的书籍。 (3)面向对象的优点:与传统的方法相比,面向对象的方法无疑具有更多的优点,这使它成为当今程序设计的发展方向。 面向对象方法与人类的习惯思维方法吻合。面向对象的方法使用显示世界的概念抽象地思考问题从而自然地解决问题。它用对象的观点把事物的属性和行为两方面的特征封装在一起,使人们能够很自然地模拟客观世界中的实体,

29、以及按照人类思维的习惯方式建立起问题领域的模型。 面向对象方法的可读性好。采用面向对象的方法,用户只需要了解类和对象的属性和方法,而无需知道它内部实现的细节就可以放心地使用。 面向对象方法的稳定性好。面向对象方法以对象为中心,用对象来模拟客观世界中的实体。当软件的需求发生改变时,往往不需要付出很大的代价就能够做出修改,例如增加或删除个别对象,继承已有类的特征构造出行的子类事项功能修改或扩充。 面向对象方法的可重用性好。用户可以根据需要将已定义好的类或对象添加到软件中,或者从已有类派生出一个可以满足当前需要的类。这个过程就像用集成电路来构造计算机硬件一样。 面向对象方法的可维护性好。面向对象的方

30、法允许用户通过操作类的定义和方法,很容易地对软件做出修改。另一方面它使软件易于测试和调试。2模块模块一般是以vba声明、语句和过程作为一个独立单元的结合。每个模块独立保存,并对处于其中的vba代码进行组织。access 2003包含有两种基本类型的模块,一种是类模块,另一种是标准模块。(1)类模块:类模块是指包含新对象定义的模块。当用户新建一个类的实例的同时也就创建了新的对象,在模块定义的任何过程都会变成这个对象的属性和方法。一般地,类模块又可以分成3种。 窗体模块:窗体模块是指与特定的窗体相关联的类模块。当用户向窗体对象中增加代码时,用户将在access数据库中创建新类。用户为窗体所创建的事

31、件处理过程是这个类的新方法。用户使用事件过程对窗体的行为以及用户操作进行响应。 报表模块:报表的表模块是指与特定的报表相关联的类模块,包含响应报表、报报表模块:报表的表模块是指与特定的报表相关联的类模块,包含响应报表、报表段、页眉和页脚所触发的事件的代码,对报表模块的操作与对窗体模块的操作相表段、页眉和页脚所触发的事件的代码,对报表模块的操作与对窗体模块的操作相类似。类似。 独立的类模块:在独立的类模块:在access 2003中,类模块可以不依附于窗体和报表而独立存在。中,类模块可以不依附于窗体和报表而独立存在。这种类型的类模块可以为自定义对象创建定义。独立的类模块列在这种类型的类模块可以为

32、自定义对象创建定义。独立的类模块列在“数据库数据库”的窗的窗口中,用户可以方便地在那里找到它。口中,用户可以方便地在那里找到它。(2)标准模块:标准模块是指存放整个数据库可用的函数和自程序的模块。它包)标准模块:标准模块是指存放整个数据库可用的函数和自程序的模块。它包含与任何其他对象都无关的通用过程,以及可以从数据库的任何位置运行的常规过含与任何其他对象都无关的通用过程,以及可以从数据库的任何位置运行的常规过程。程。(3)独立的类模块与标准模块的区别:它们的主要区别在于范围和生命周期方面。)独立的类模块与标准模块的区别:它们的主要区别在于范围和生命周期方面。独立的类模块没有相关的对象,声明的任

33、何常量和变量都仅在代码运行的时候是可独立的类模块没有相关的对象,声明的任何常量和变量都仅在代码运行的时候是可用的。用的。3过程一个过程是一个一个过程是一个vba函数单元,过程被定义为子程序,在其他程序中通过名字访问。函数单元,过程被定义为子程序,在其他程序中通过名字访问。过程可以分为两类:子过程和函数过程。过程可以分为两类:子过程和函数过程。(1)子过程()子过程(sub):子过程是指那些用来执行一个操作或多个操作,而不会返回):子过程是指那些用来执行一个操作或多个操作,而不会返回任何值的过程。任何值的过程。access 2003中的事件响应模块常常使用子过程来创建。中的事件响应模块常常使用子

34、过程来创建。(2)函数过程()函数过程(function):函数过程也可以简称函数,是指可以返回一个值的过):函数过程也可以简称函数,是指可以返回一个值的过程。这个特点使得用户可以在表达式中使用它们。程。这个特点使得用户可以在表达式中使用它们。vba包含可很多内置的函数,用包含可很多内置的函数,用户可以很方便的从中调用它们。户可以很方便的从中调用它们。 7.3.2 将宏转化为将宏转化为visual basic代码代码如果要在应用程序中使用visual basic,用户可以将已有的宏转换为visual basic代码。如果希望整个数据库中都可以使用代码,用户可以直接在“数据库”窗口的对象“宏”中

35、进行转换;如果要让代码和窗体、报表等数据库对象保存在一起,则可以在相关窗体或报表的设计视图中转换。1在设计视图中转换以窗体为例,将数据库中的窗体转换为visual basic代码,这样就可以将窗体和visual basic代码保存在一起了。(1)打开“学生管理”数据库,单击“窗体”对象,选中其中的 “控制报表的操作” 窗体,然后单击“视图”“设计视图”命令,在设计视图中打开“控制报表的操作”窗体。(2)在设计视图中,单击“工具”“宏”“将窗体的宏转换为visual basic代码”命令,弹出“转换窗体宏”对话框,如图7-3-1所示。(3)清除第1个复选框,单击“转换”按钮,access弹出“将

36、宏转换到visual basic”消息框表示转换结束,如图7-3-2所示。 图7-3-1 “转换窗体宏”对话框 图7-3-2 转换结束消息框 (4)单击“确定”按钮关闭消息框,然后单击工具栏上的“代码”按钮,打开“visual basic编辑器”窗口,其中含有由宏转换的代码,如图7-3-3所示。 图7-3-3 转换后的visual basic代码当access碰到visual basic代码行中撇号()时,将忽略该行撇号后的部分。在visual basic代码行中的任何部分,用户都可以使用撇号插入注释。2从数据库窗口转换从数据库窗口进行宏转换时,宏操作将被保存为全局模块中的一个函数,并在数据库

37、窗口的“模块”对象中保存转化的宏。从“数据库”窗口中转换的宏可供整个数据库使用,且宏组中的每个宏不是转换成子过程,而是转换为不同的函数。将在数据库中创建的宏转换为visual basic代码的操作步骤如下。(1)单击数据库窗口中“对象”列表中的“宏”对象,然后在右边的列表框中选中需要进行转换的宏。(2)单击“工具”“宏”“将宏转换为visual basic代码”命令,弹出“转换宏”对话框,如图7-3-4所示。(3)单击“转换”按钮关闭对话框,access将弹出“将宏转换到visual basic”的消息框,单击“确定”按钮结束转换过程,如图7-3-5所示。 图7-3-4 “转换宏”对话框 图7

38、-3-5 转换结束消息框除了上述方法以外,用户还可以选择“文件”“另存为”命令,或者用鼠标右键单击需要转换的宏,然后在弹出的快捷菜单中选择“另存为”命令。在弹出的“另存为”对话框中“将宏另存为”文本框中输入新的模块名,并从“保存类型”文本框中选择“模块”选项,然后单击“确定”按钮关闭对话框,这时access弹出相应的“转换宏”对话框。7.3.3 借助visual basic 实现宏功能虽然宏很好用,但它的运行速度比较慢,也不能直接运行很多windows程序,尤其是不能自定义某些函数。这样当需要对某些数据进行特殊分析时也就无能为力了。由于宏具有这些局限性,所有access为用户提供了visual

39、 basic 语言编写程序的能力,从而实现一些特殊的功能,然后将这些代码编译成拥有特定功能的“模块”,便于调用。 1浏览“visual basic编辑器”窗口既然要编写visual basic程序,就需要先了解visual basic的开发环境。visual basic的开发环境也就是“visual basic编辑器”窗口。用户可以单击数据库窗口“对象”列表中的“模块”对象,然后单击工具栏上的“新建”按钮,打开“visual basic编辑器”窗口,如图7-3-6所示。“visual basic编辑器”主要包括主窗口、模块代码窗口、工程资源管理器和模块属性窗口等4部分。所有的visual ba

40、sic程序都是在模块代码窗口中编写的。模块代码窗口是用来输入“模块”每步的程序代码的,工程资源管理器则用来显示该数据库中所有的“模块”对象。当用户单击这个窗口内的任一“模块”选项时,就会在模块代码窗口上显示该模块的visual basic程序代码,同时“模块属性”窗口上就可以显示当前选定的“模块”具有的各种属性。 主窗口 工程资源 管理器 模块属 性窗口 模块代 码窗口 图7-3-6 “visual basic编辑器”窗口 在在visual basic中,由于在编写代码的过程中会出现各种难以预料的问题或中,由于在编写代码的过程中会出现各种难以预料的问题或错误,所以编写的程序很难一次通过,这时就

41、需要一个专用的调试工具快错误,所以编写的程序很难一次通过,这时就需要一个专用的调试工具快速查找程序中的问题,以便消除代码中的错误。速查找程序中的问题,以便消除代码中的错误。“visual basic编辑器编辑器”中的中的“本地窗口本地窗口”、“立即窗口立即窗口”和和“监视窗口监视窗口”就是专门用来调试就是专门用来调试visual basic程序的。用户可以在程序的。用户可以在“visual basic编辑器编辑器”窗口中选择窗口中选择“视图视图”“本地窗口本地窗口”(“立即窗口立即窗口”或或“监视窗口监视窗口”)命令)命令打开打开“本地窗口本地窗口”(“立即窗口立即窗口”或或“监视窗口监视窗口

42、”)即可。)即可。2编写visual basic代码现在介绍如何在现在介绍如何在“visual basic编辑器编辑器”中编写代码实现特定功能。用户可中编写代码实现特定功能。用户可以利用以利用access提供的宏设计视图窗口创建一个消息框,也可以利用编写提供的宏设计视图窗口创建一个消息框,也可以利用编写visual basic代码方法实现上述功能。代码方法实现上述功能。(1)在)在“visual basic编辑器编辑器”窗口中,单击窗口中,单击“插入插入”“模块模块”命令,添命令,添加一个模块,然后再单击加一个模块,然后再单击“插入插入”“过程过程”菜单命令,或单击工具栏上的菜单命令,或单击工

43、具栏上的“插入过程插入过程”按钮,打开按钮,打开“添加过程添加过程”对话框,如图对话框,如图7-3-7所示。所示。 在“添加过程”对话框中输入过程名称并选择过程的类型和作用范围,同时还可以指定过程中使用的变量在推出过程后是否保持其值不变。如果用户选择“把所有局部变量声明为静态变量”复选框,则在过程中visual basic自动在局部变量前面添加static关键字。过程定义完毕后,单击“确定”按钮即可。(2)切换到“visual basic编辑器”的“代码窗口”,上方右侧的文本框中显示的是刚刚添加的过程名,而在下方的空白区域只能给出新添加了两行代码,该“过程”用到的所有代码都将在这两行之间进行编

44、写,如图7-3-8所示。(3)在代码窗口中添加下列visual basic语句。 图7-3-7 “添加过程”对话框 图7-3-8 “模块代码”窗口上述语句中的上述语句中的“on error goto welcome_err”是用来测试是用来测试visual basic运行运行中出现的异常错误,如果中出现的异常错误,如果visual basic语句在运行过程中发生错误,则跳转语句在运行过程中发生错误,则跳转到到“welcome_err:”语句后面的部分,弹出错误警告消息框。当程序运行到语句后面的部分,弹出错误警告消息框。当程序运行到“resume welcome_exit”语句时,则又跳转到语句

45、时,则又跳转到“welcome_exit:”后面的后面的“exit function”语句,其功能为将程序跳出该函数。语句,其功能为将程序跳出该函数。如果程序没有出现任何错误,系统将忽略如果程序没有出现任何错误,系统将忽略“on error goto welcome_err”语句,直接执行语句,直接执行“beep”语句和语句和“msgbox welcome! , vbokonly, ”。“beep”语句可以在弹出对话框时发出嘟嘟的提示音,而语句可以在弹出对话框时发出嘟嘟的提示音,而“msgbox welcome! , vbokonly, ”语句中的语句中的“msgbox”就是在宏中完成相应就是在宏中完成相应功能的操作,功能的操作,“welcome! ”、“vbokonly”和和“ ”分别

温馨提示

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

评论

0/150

提交评论