第 9章 宏本章重点本章主要讲解 Access中宏的基础知识,宏的定义,用处和分类;宏,宏组和条件操作宏的创建方法,宏的操作及如何调试宏 。 从而将数据库中的各种操作有机地结合起来,建立一个数据库应用程序,简化数据库的操作 。
前面我们学习了 Access数据库中几种基本的对象,表、
查询、窗体和报表。这些数据库对象具有很强的功能,但创建的数据库系统只有创建者本人能够操纵使用。 Access中的宏和模块两种对象,能将 Access数据库中的各种对象有机地结合起来,给用户提供一个完整和操作方便的数据库系统。比如,有这样一个“学习课程查询宏”,执行该宏的结果是包含“打开查询”和“打开窗体”两个操作,从而简化了操作步骤,如图 9-1所示。
使用宏,用户就不必写许多的程序,轻松建立一个功能强大的数据库应用程序。下面简单介绍一下宏。
图 9-1,学习课程查询宏”的执行结果第 9章 宏
9.1 宏的基本知识
9.2 创建宏和宏组
9.3 运行宏
9.4 宏的应用实例
9.5 习题
9.1 宏的基本知识
宏( Macro)就是 Access所提供给程序开发者开发窗体或报表的应用程序。它是由一个或多个操作命令组成的集合,其中每个操作能够实现特定的功能。将多个操作集合在一起,就可以自动完成各种简单的重复性工作,让用户轻易地执行 Access的各项命令操作,从而实现操作的自动化,提高工作效率。宏是 Access 2002数据库的对象之一,和表、查询、窗体、报表等其他数据库对象一样。
9.1.1 宏的作用
使用数据库中宏操作执行任何重复任务或一系列任务时,
可以节约时间、提高效率。用宏实现的重复执行任务通常都是非常有用的。当执行所指定的每次以同样的方法运行的操作时,宏会使数据库增加准确性和有效性。宏可以执行多种任务。例如,如果每次打开一个数据库时,需要执行一个查询,然后打印一个报表。这些操作可以创建一个宏来自动完成。建立一个“关闭窗体”的按钮,与,Close”宏命令结合,
那么当用户按下此按钮时,就会自动关闭窗体。
使用宏非常简单,只需利用几个宏操作即可以将已创建的数据库对象联系在一起,实现特定的功能。 Access 2002提供了很多个宏操作,其中几种常见的宏命令见表 9-1。
宏 命 令 说 明
ApplyFilter 用来筛选、查询或将 SQL的 Where子句应用至表、窗体或报表,以便限制或排序记录
Beep 通过计算机的扬声器发声
Close 关闭指定的 Microsoft Access窗口,或者如果没有指定的话,则关闭作用中的窗口
CopyObject 指定的数据库对象复制到不同的 Access数据库,或复制到相同的数据库,Access项目中
DeleteObject 删除指定的数据库对象
FindRecord 寻找符合由 FindRecord自变量指定条件的第 1条数据记录
MsgBox 显示包含警告或提示信息的消息框
OpenForm 打开在窗体视图、窗体设计视图、预览打印或数据表视图中的窗体
OpenQuery 打开数据表视图、设计视图或预览打印中是选择或交叉查询
OpenReport 打开设计视图或预览打印中的报表或立刻打印报表
OpenTable 在数据表视图、设计视图或预览打印中打开表
Quit 结束 Access
RunApp 执行 Windows或 MS-DOS环境下的应用程序。例如,Microsoft Excel,Microsoft Word或Microsoft PowerPoint等
RunCommand 执行内置的 Microsoft Access命令
RunMacro 执行宏
Save 保存指定的 Access 对象,或者假如没有指定对象,则保存使用中的对象
StopMacro 停止当前正在执行的宏表 9-1 常见的宏命令
9.1.2 宏的分类
宏可以分成宏、宏组和条件操作宏。宏是操作序列的集合,而宏组是宏的集合,条件操作宏是带有条件的操作序列,
这些宏中所包含的操作序列只有在条件成立时才可执行。
1.宏
宏是由一个或多个操作命令组成的集合,其中每个操作都实现特定的功能。例如,打开某个窗体或打印某个报表。
宏可以自动完成某些常规任务。例如,可执行一个宏,用于在用户单击某个命令按钮时打印报表。
2.宏组
宏组实际上是以一个宏名来存储相关的宏的集合。宏组中的每一个宏都有宏名,用以标识宏,以便在适当的地方引用宏。这样可以更方便地对宏进行管理,对数据库进行管理。
例如,可以将同一个窗体上使用的宏组织到一个宏组中。
3.条件操作宏
条件操作宏就是在宏中设置条件式,用来判断是否要执行下一个宏命令;也就是只有当条件式成立时,该宏命令才会被执行。这样可以加强宏的功能,也使宏的应用更加广泛。
利用条件操作可以根据不同的条件执行不同的宏操作。具有条件的宏成为条件操作宏。例如,如果在某个窗体中使用宏来校验数据,可能要显示某些信息来响应记录的某些输入值,
另一些信息则响应不同的值。此时,可以使用条件来控制宏的流程。
BACK
9.2 创建宏和宏组
9.2.1 创建宏
创建宏需要创建两个主要部分,添加宏操纵和设置宏参数。创建宏操作主要有三种方法:在宏操作列表中选择所需的操作;在“宏”窗口的“操作”单元格中输入操作名;从
“数据库”窗口中拖动对象到“宏”窗口操作列中。
【 例 9-1】 在“学籍管理数据库”中创建一个“学习课程查询宏”,使得它的执行结果如图 9-1所示,包含“打开查询”
和“打开窗体”两个操作。
宏的创建通过“宏”窗口完成,操作步骤如下:
( 1)打开新建宏窗口。在“学籍管理数据库”窗口中,单击对象栏中的 【 宏 】 按钮,再单击工具栏中的“新建”按钮,
系统弹出如图 9-2所示的新建宏窗口。
( 2)选择第一个操作。单击“操作”列的第一行,再单击右边的下箭头,在下拉列表中,选择要使用的操作 ——
“OpenQuery”(打开查询)。
图 9-2 新建宏窗口在“注释”列中可输入此操作的说明 ——“打开学习课程查询”(此步骤可选)。
在窗口的下部,可以设置操作参数(可选)。
在“查询名称”下拉列表框中选择“学习课程查询”。
在“视图”下拉列表框中选择“数据表”选项。在“数据模式”下拉列表框中选择“只读”选项,如图 9-3所示。
如果需要在一个宏内添加更多的操作,可以把光标移动到下一行,重复执行以上步骤。
图 9-3 选择宏操作
( 3)另外一种快速创建宏的方法。在如图 9-3所示的窗口中,
将光标移动到“操作”的第二行,单击如图 9-4所示菜单
“窗口”中的“垂直平铺”命令。
图 9-4 选择“垂直平铺”命令
,数据库”窗口和“宏”窗口同时以平铺的形式显示在屏幕上,如图 9-5所示。
图 9-5 垂直平铺窗口
在“数据库”窗口中,选择 【 窗体 】 按钮,用鼠标选中
“学习课程查询”窗体,拖动鼠标可以将它拖动到宏窗口中
“操作”列的第二行中,系统完成第二个操作的定义 —
“OpenForm”(打开窗体),如图 9-6所示。并且同样可以输入“注释”和设置“操作参数”。
重复此过程可以定义多个操作。
图 9-6 定义操作
( 4)保存宏。单击工具栏中的“保存”按钮,弹出如图 9-
7所示的“另存为”对话框,命名为“学习课程查询宏”,
单击 【 确定 】 按钮,即可保存该宏。
在数据库窗口中打开“学习课程查询宏”,系统弹出如图 9-1所示的宏的执行结果。
图 9-7,另存为”对话框
9.2.2 创建宏组
创建宏组与创建宏的方法类似。
【 例 9-2】 在“学籍管理数据库”中创建一个宏组,使该宏组能够自动运行“学习课程查询宏”,并在运行成功后,用一个消息框来显示。执行该宏组的结果如图 9-8所示。
图 9-8 宏组 1的执行结果
该宏组包括“宏 A”和“宏 B”两个宏。其操作步骤如下:
( 1)打开新建宏窗口。在“学籍管理数据库”窗口中,单击 【 宏 】 按钮,新建一个如图 9-2所示的“宏”窗口。单击工具栏中的“宏名”按钮,增加一个“宏名”列,如图 9-9
所示。
图 9-9 增加一个“宏名”列
( 2)创建第一个宏。在新出现的“宏名”列的第一行中,
输入宏组中第一个宏的名字 ——“宏 A”。在其“操作”列中选择,Msgbox”(信息框)操作。在“操作参数”的“消息”
文本框中,输入“学习课程查询宏运行成功!”,在“发嘟嘟声”下拉列表框中,选择“是”,如图 9-10所示。
图 9-10 创建宏组中的第一个宏
( 3)创建第二个宏。在“宏名”列第二行中,输入第二个宏的名字 ——“宏 B”。在其“操作”列中选择,RunMacro”
(运行宏)操作。在“操作参数”的“宏名”下拉列表框中,
选择“学习成绩查询宏”,如图 9-11所示。
图 9-11 创建第二个宏
( 4)保存宏组。单击工具栏中的“保存”按钮,在“另存为”对话框中输入宏名为“宏组 1”。单击 【 确定 】 按钮,即可保存该宏组。这个名字也是显示在“数据库”窗口中宏和宏列表中的名称。当引用宏组中的宏时,使用的语法为“宏组名,宏名”。
在“数据库”窗口中打开“宏组 1”,系统弹出如图 9-8所示的宏组的执行结果。
为了试用宏组中第二个宏“宏 B”的作用,可以按以下方法进行操作:
先打开“宏”窗口,新建一个“试用宏 B”宏,在其“操作”列中选择,RunMacro”命令,“注释”为“运行宏组 1.
宏 B”,在“操作参数”的“宏名”中选择“宏组 1.宏 B”,如图 9-12所示,然后存盘关闭。
图 9-12 选择操作参数
在“数据库”窗口中双击“宏”窗口中的“试用宏 B”宏对象,系统自动执行“宏组 1”中的“宏 B”,自动依次打开
“学习课程”查询和窗体,结果如图 9-1所示。它们之间的链接关系为:“试用宏 B”宏 → 宏组 1.宏 B→ 学习课程查询宏
→ 学习课程查询宏的操作序列。
9.2.3 创建条件操作宏
创建具有条件的宏的方法与创建宏和宏组一样,通过
“宏”窗口来完成,它们的区别是在“宏”窗口中需要增加
“条件”列。先设置需要添加的“条件”,再将这个“条件宏”加入到操作对象中。
【 例 9-3】 创建一个宏,确保在“学生管理数据库”中,在进行学生信息查询时,必须填写“姓名”字段,如果用户没有输入该字段时,出现一个警告信息,如图 9-13所示。
图 9-13 有条件的窗体
( 1)打开新建宏窗口。在“学籍管理数据库”窗口中,单击 【 宏 】 按钮,新建一个宏窗口。单击工具栏中的“条件”
按钮,增加一个“条件”列,如图 9-14所示。
图 9-14 创建条件操作宏
( 2)创建条件操作。在“条件”行中,可以直接输入条件表达式。也可以单击鼠标右键,从弹出的菜单中选择“生成器”;或者单击工具栏中“生成器”按钮,如图 9-15所示,在其中选择“函数”中的“内置函数,IsNull(expr)”。
将“姓名”作为表达式填入括号中,单击 【 确定 】 按钮,
就将函数 IsNull([姓名 ])设置为条件。
图 9-15 表达式“生成器”
单击 【 确定 】 按钮,继续在宏的设计窗口中设置条件符合时所执行的宏命令:
1),Msgbox”(信息框)操作,在“操作参数”的“消息”
文本框中,输入“请输入姓名!”。
2)在“发嘟嘟声”下拉列表框中,选择“是”。
3)将“类型”选项中设为“警告!”;在“标题”文本框中,输入“输入错误信息!请重试!”。设置完成后,如图
9-16所示。
图 9-16 设置条件符合时所执行的宏命令
在“条件”的第二行中输入,…”,表示前一行符合条件时,同时执行此行操作。选取相应的宏命令
,CancelEvent”,如图 9-17所示。
( 3)保存条件操作宏。单击工具栏中的“保存”按钮,
在“另存为”对话框中输入名字为“条件宏”,单击 【 确定 】 按钮,即可保存条件操作宏。
图 9-17 设置条件符合时所执行的另一个宏命令
( 4)将宏加入窗体对象中。打开“学生信息”窗体,并切换到设计视图进行设置。首先选择“姓名”字段,单击工具栏中的“属性”按钮,如图 9-18所示,选择“事件”
选项卡中“更新前”的下拉列表框中“条件宏”,关闭属性框。
( 5)验证条件操作宏。保存窗体的变更,切换至窗体视图,
将“姓名”字段删除,再将焦点移到别处时,就会出现警告窗口,如图 9-13所示。
图 9-18 设置应用条件操作宏的字段BACK
9.3 运行宏
9.3.1 执行宏
在运行宏时,Access 2002将从宏的起始点开始启动,
并执行宏中所有操作,直到到达另一个宏(如果宏在宏组中)或者到达宏的结束点。执行宏的方法有多种,下面介绍其中的几种。
1.从“宏”窗口下执行宏
在如图 9-2所示的“宏”窗口中,单击工具栏中的
“运行”按钮 。
2.从“数据库”窗口下执行宏
在“数据库”窗口中,单击 【 宏 】 按钮,双击所要执行的宏;或者用鼠标选中要执行的宏,单击鼠标右键,在弹出的菜单中选中“运行”命令,如图 9-19所示。
图 9-19 从“数据库”窗口下执行宏
3.从 Access主窗口下执行宏
( 1)在 Access主窗口下单击“工具”菜单,用鼠标选中
“宏”,在弹出的菜单中单击“运行宏”命令,如图 9-20所示。
图 9-20 从 Access 主窗口下执行宏
( 2)在如图 9-21所示的“执行宏”对话框中输入要执行的宏名,单击 【 确定 】 按钮即可。
图 9-21 输入要执行的宏名
4.从另一个宏中执行宏一个宏运行另一个宏就是使用宏操作中的,RunMacro”命令,另一个宏的宏名作为操作参数,如图 9-12所示。
9.3.2 调试宏对于操作较复杂的宏,运行时如果出现错误,不容易发现,
在进行对宏的调试中,可以采用宏的单步执行,即一次只执行一个操作的调试。这样可以观察宏的流程和每一步操作的结果,
能够比较容易地分析出出错的原因,改正出错的操作。
【 例 9-4】 对在 【 例 9-1】 中创建的“学习课程查询宏”进行调试。
( 1)首先在设计视图中打开此宏,单击工具栏上的“单步”
按钮,再单击工具栏上的“执行”按钮,将弹出如图 9-
22所示的“单步执行宏”对话框。
图 9-22,单步执行宏”对话框
( 2)单击 【 单步执行 】 按钮,将执行显示在对话框中的操作“学习课程查询”,如图 9-23所示。
( 3)若单击 【 暂停 】 按钮,将停止宏的执行,并关闭对话框;若单击 【 继续 】 按钮,则关闭单步执行,并执行宏的未完成部分。
图 9-23 执行显示在对话框中的操作“学习课程查询”
BACK
9.4 宏的应用实例
在这一节中将学习新建一个宏和执行此宏的命令按钮,
以加深对宏的认识。
【 例 9-5】 在“学籍管理数据库”中的“学生信息”窗体中,创建一个 【 学生成绩 】 查询命令按钮,单击此按钮,
将会在窗体中打开一个“学生成绩”查询窗体,如图 9-24
所示。
图 9-24 应用宏的窗体
( 1)在“学籍管理数据库”中,单击 【 宏 】 按钮,并单击
【 新建 】 按钮,如图 9-2所示。
( 2)在第一行的“操作”列内,单击列右边的下拉箭头,
从中选择,OpenQuery”命令。在“操作参数”的“查询名称”列表中选择“学习成绩”查询,在“视图”列表中选择
“数据表”,如图 9-25所示。
图 9-25 创建“学习成绩”查询宏
( 3)单击工具栏中“保存”按钮,并将其命名为“学习成绩查询宏”。
( 4)这一步是在“学生信息查询”窗体中创建一个命令按钮。在“数据库”窗口下,单击 【 窗体 】 按钮,并在设计视图中打开“学生信息查询”,如图 9-26所示。
图 9-26,学生信息查询”设计视图
( 5)然后单击工具箱中“命令按钮”,将其放置在窗体中合适的位置。此时弹出如图 9-27所示的“命令按钮向导”对话框一。在“类别”列表框中选择“杂项”,在“操作”列表框中选择“运行宏”。
图 9-27,命令按钮向导”对话框一
( 6)单击 【 下一步 】 按钮,弹出如图 9-28所示的“命令按钮向导”对话框二。确定命令按钮运行的宏,在列表框中选择“学习成绩查询宏”。
图 9-28,命令按钮向导”对话框二
( 7)单击 【 下一步 】 按钮,弹出如图 9-29所示的“命令按钮向导”对话框三。在其中选择“文本”单选按钮,并在文本框内输入“学生成绩”,作为按钮显示的标题。
图 9-29,命令按钮向导”对话框三
( 8)单击 【 下一步 】 按钮,弹出如图 9-30所示的“命令按钮向导”对话框四。在此输入命令按钮的名称“查询成绩”。
( 9)切换到窗体视图,窗体中多出一个 【 学习成绩 】 按钮,
单击此按钮,出现如图 9-24所示学习成绩查询表。
另外,对命令按钮的设置也可以在属性表中进行。
图 9-30,命令按钮向导”对话框四
【 例 9-6】 在“学籍管理数据库”中的“学习课程查询”
窗体中,创建一个 【 关闭 】 按钮,单击此按钮,将执行关闭窗体动作。
( 1)在“学籍管理数据库”中,创建一个“关闭窗体”宏,
如图 9-31所示。
图 9-31 创建“关闭窗体”宏
( 2)在设计视图中打开“学习课程查询”窗体,并创建一个命令按钮,单击此“命令按钮”,并通过工具栏中“属性”按钮,打开“命令按钮”的属性表。在“格式”选项卡的“标题”文本框中,将其标题设置为“关闭”,如图 9-32所示。
图 9-32 设置标题
( 3)在“事件”选项卡的“单击”的下拉列表中选择“关闭窗体”宏,如图 9-33所示。
( 4)关闭属性框,保存对窗体的修改设计并关闭窗体。
这样,再次打开“学习课程查询”窗体时,便可以通过单击 【 关闭 】 按钮来关闭此窗体。
图 9-33 选择“关闭窗体”宏
BACK
9.5 习题
1.选择题
( 1)下面对宏的描述中错误的是( )。
A,宏是一种操作代码的组合
B,宏具有控制转移功能
C,建立宏通常需要添加宏操作和设置宏参数
D,宏操作没有返回值
( 2)宏的优点是( )。
A,可以自动进行一些操作 B,执行特定功能
C,可以由用户自主定义 D,是一组代码组合
2.思考题
( 1)什么是宏?
( 2)宏的作用是什么?
( 3)宏的操作如何设置?有何意义?
BACK