1、第7章 宏,7.1宏的概述 7.2宏的创建 7.3 宏及宏组的运行与调试,7.1宏的概述,7.1.1宏的定义和作用 7.1.2宏的分类 7.1.3常用的宏操作,7.1.1宏的定义和作用,宏是一个或多个操作的集合,其中每个操作实现特定的功能。在Access中,提供了50多个宏操作。为了实现某个特定的任务,可以使用这些宏操作创建一个有序的操作序列,这种操作序列就是宏。执行宏时,Access自动执行宏中的每一条宏操作,以完成特定任务。 使用宏很方便。用户不需要记住各种语法,可以从宏设计窗口中选择所要使用的宏操作,操作所需参数都显示在“宏”设计窗口的下半部分。,宏示例,图7.1 打开库存查询窗体宏,7
2、.1.2宏的分类,Access宏可以是包含操作序列的宏,也可以是一个宏组,宏组由若干个宏组成。另外,还可以使用条件表达式来决定在什么情况下运行宏。根据以上三种情况,可以把宏分为三类:操作系列宏、宏组和条件宏。,1操作序列宏,操作序列宏是由一系列的宏操作组成的序列。每次运行该宏时,Access都将执行这些操作。图7.2是操作序列宏的一个示例。,图7.2操作序列宏,2宏组,可以将相关的宏保存在同一个宏对象中,使它们组成一个宏组,这样将有助于数据库系统的管理。如图7.3所示,就是由两个宏组成的宏组,它们的宏名分别是“打开窗体”、和“打印报表”。,图7.3 宏组,3条件宏,条件宏带有“条件”列,通过在
3、条件列指定条件,可以有条件的执行某些操作。如果指定的条件成立,Access将继续执行一个或多个操作;如果指定的条件不成立,Access将跳过该条件所指定的操作。,在“图书销售管理系统”中,“登录宏”就是一个条件宏,当条件“txtPws=密码”成立时,执行Close操作;如果条件不成立,则不执行该操作。同样,当条件“txtPws=密码”成立时,执行OpenForm操作;如果条件不成立,则不执行该操作。如图7.4所示。,图7.4 条件宏,7.1.3常用的宏操作,Access的宏操作总共有50多个,按功能可以分为不同的5种类别。在此,我们介绍其中常用的16种基本操作,并将其分为5类分别介绍。,1记录
4、操作类,GotoRecord操作: 使用 GoToRecord 操作可以使指定的记录成为打开的表、窗体或查询结果集中的当前记录。 FindRecord操作: FindRecord是采用查找方式移动记录指针的操作。 FindNext操作: 可以查找下一个记录,该记录符合由前一个Requery操作:使用 Requery 操作可以通过重新查询控件的数据源来更新活动对象指定控件中的数据。如果不指定控件,该操作将对对象本身的数据源进行重新查询。使用该操作可以确保活动对象或其所包含的控件显示的是最新数据。 Requery操作: 使用Requery操作可以通过重新查询控件的数据源来更新活动对象指定控件中的数
5、据。使用该操作可以确保活动对象或其所包含的控件显示的是最新数据。,2窗体操作类,OpenForm操作 使用OpenForm操作,可以从窗体“设计”视图、“打印预览”或“数据表”视图中打开一个窗体,可以选择窗体的数据输入与窗口方式并限制窗体所显示的记录。,Close操作,使用Close操作可以关闭指定的Microsoft Access窗口,这个窗口可以是一个运行着的窗体视图、数据表视图、查询视图、报表视图、宏对象视图等等。如果没有指定窗口,则关闭当前的活动窗口。,Maximize操作,使用Maximize操作可以放大活动窗口,使其充满Microsoft Access窗口。该操作可以使用户尽可能多
6、地看到活动窗口中的对象。该操作与单击窗口右上角的“最大化”按钮或控制菜单中的“最大化”命令具有相同的功能。 Minimize操作 使用Minimize操作可以将活动窗口缩小为Microsoft Access窗口底部的小标题栏。该操作与单击窗口右上角的“最小化”按钮或控制菜单中的“最小化”命令具有相同的功能。,MoveSize操作,使用MoveSize操作可以移动活动(当前)窗口或调整其大小。它带有4个参数:右,下,宽度,高度。如果用于移动窗口,则设置右、下两参数;如果用于调整窗口大小,则设置宽度、高度两参数。,3报表操作类,OpenReport操作 使用OpenReport操作,可以在报表“设
7、计视图”或报表“打印预览视图”中打开报表对象或打印报表,也可以限制需要在报表中打印的记录。,PrintOut操作,使用PrintOut操作可以打印一个打开数据库中的当前活动对象,也可以打印数据表、报表、窗体和数据访问页和模块。此操作类似于选择对象然后单击“文件”菜单上的“打印”。但是,使用此操作不会显示“打印”对话框。,应用程序类,RunCommand操作 使用RunCommand操作可以运行Microsoft Access的内置命令。所谓内置命令是指出现在Microsoft Access菜单栏、工具栏或快捷菜单上的那些功能程序。,RunMacro操作,使用RunMacro操作可以运行一个独立
8、的宏或者一个位于宏组中的宏。,RunApp操作,使用RunApp操作可在Microsoft Access中运行一个Windows或MS-DOS应用程序,如Microsoft Excel,Microsoft Word或 Microsoft PowerPoint等等。例如,有可能要将电子表格数据粘贴到Microsoft Access数据库中,就可以调用Microsoft Excel的复制/粘贴程序以达到操作目的。,Quit操作,使用Quit操作可以退出Microsoft Access。Quit操作还可以指定在退出Microsoft Access之前保存当前数据库对象中的几个选项。,Beep操作,发
9、出嘟嘟声。使用 Beep 操作,可以通过个人计算机的扬声器发出嘟嘟声。 可以使用 Beep 操作提示下列情况: 重要窗体被更改。 控件中输入了错误的数据类型。例如,用户在文本框控件中输入了数值型数据。 宏已经执行到指定位置或已经完成操作。,MsgBox操作,使用MsgBox操作可以显示包含警告信息或其他信息的消息框。例如,可以在有效性验证的宏中使用MsgBox操作。当控件或记录不符合宏中的验证条件时,消息框将显示错误信息,并提示应该输入的正确数据。,7.2宏的创建,7.2.1操作系列宏的创建 7.2.2宏组的创建 7.2.3条件宏的创建,7.2宏的创建,在使用宏之前,要首先创建宏。创建宏对象没
10、有太多的语法需要用户去掌握,用户所需要去做的就是在宏的操作设计列表中做一些简单的选择。 创建宏的过程主要有指定宏名、添加操作、设置操作参数以及提供备注等。本节分别介绍操作系列宏、宏组、条件宏的创建。,7.2.1操作系列宏的创建,创建宏要在宏设计窗体中进行。宏设计窗体和其他对象的设计窗体一样,也有其特定的工具栏。表7.1列出了宏设计工具栏的一些常用按钮。,创建操作系列宏,创建操作系列宏,具体操作步骤如下: 在“数据库”窗口中,单击“对象”下的“宏”,进入“宏”对象窗口。 单击工具栏上的“新建”按钮,打开“宏”设计窗口。如图7.5所示。图7.5 宏设计窗口 单击“操作”字段的第一个单元格,然后再单
11、击箭头来显示出操作列表。从中选取要使用的操作。 在窗口的下半部指定操作的参数。 如果要在一个宏内添加更多的操作,请移动到另一个操作行,并重复执行第 3 步到第 5 步。Microsoft Access 将按照操作列表上的顺序执行操作。 命名保存设计好的宏。,例 创建一个名为“打开窗体”的宏,功能是打开“库存查询条件窗体”;创建一个空白窗体,在窗体上创建一个命令按钮,名为“打开”,功能是运行“打开窗体”的宏。,在宏中设置操作参数,在宏中添加了某个操作之后,可以在“宏”窗口的下部设置这个操作的参数。这些参数可以向 Access 提供如何执行操作的附加信息。,关于设置操作参数的一些提示,在很多情况下
12、,可以从列表中选择某个设置,或者在参数框中键入数值。 通常,应按参数排列顺序来设置操作参数。 如果通过从“数据库”窗口拖拽数据库对象的方式来向宏中添加操作,Microsoft Access 将自动为这个操作设置适当的参数。 如果宏操作中有调用数据库对象名的参数,则可以将对象从“数据库”窗口中拖拽到参数框,从而设置参数及其对应的对象类型参数。 许多操作参数允许用前面加等号“=”的表达式来设置。例如:可以设置PrintOut的“份数”参数为“=Forms!窗体1!Text0”。这样,打印份数可以通过在窗体1上的Text0文本框中输入数字来决定。,AutoExec宏的使用,使用一个名为 AutoEx
13、ec 的特殊宏可在打开数据库时自动执行一系列的操作。在打开数据库时,Microsoft Access 将查找名为 AutoExec 的宏,如果找到,就自动运行它。 创建一个宏,其中包含在打开数据库时要执行的操作,以 AutoExec 为宏名保存该宏。 那么,下一次打开数据库时,Access 将自动运行该宏。,需要注意:,如果不想在打开数据库时运行 AutoExec 宏,可在打开数据库时按 SHIFT 键。 通过设置“工具”菜单中的“启动”对话框中的选项也可以控制如何启动数据库。,7.2.2宏组的创建,为了便于管理,增强可读性,通常将相关的宏组成一个宏组,放在同一个宏对象中。例如,同一个窗体有2
14、个按钮,分别触发2个不同的宏运行,那么,这两个宏可以放在一起组成一个宏组。建立宏组主要是为了管理方便。这与在资源管理器中建立文件夹,将相关文件存放在同一个文件夹中的做法意义相似。 例 创建一个名为“Open”的宏组,其中包括两个宏,一个为“Open1”,用来打开一个窗体,另一个为“Open2”,用来打开一个报表;创建一个空白窗体,内有两个按钮,分别调用宏组中的两个宏。,7.2.3条件宏的创建,在某些情况下,可能希望仅当特定条件成立时才执行宏中一个或多个操作,则可以在操作前面加上条件,形成条件宏。,1宏条件的示例,条件是逻辑表达式,其返回值只有两个:“真”和“假”。当条件成立时,表达式的返回值为
15、“真”;条件不成立时,表达式的返回值为“假”。 逻辑表达式可以在宏设计视图的“条件”列中直接输入,也可以在“条件”列中击右键,从弹出的快捷菜单中选“生成器”来生成逻辑表达式。,宏条件示例,7.3 宏及宏组的运行与调试,当创建了一个宏后,需要对宏进行运行与调试,以便察看创建的宏是否含有错误,是否能完成预期任务。,7.3 宏及宏组的运行与调试,7.3.1运行宏 7.3.2运行宏组 7.3.3调试宏,7.3.1运行宏,宏可以有以下几种运行方式: 1直接运行宏 2从其他宏中运行宏 3在窗体、报表或控件的事件中运行宏,1直接运行宏,如果要直接运行宏,可以进行下列操作之一: 如果要从“宏”设计窗口中运行宏
16、,首先选中要运行的宏,然后单击工具栏上的“运行”按钮。 如果要从“数据库”窗口中运行宏,请单击“对象”下的“宏”,然后双击相应的宏名。 如果要在 Microsoft Access 的其他地方运行宏,请指向“工具”菜单上的“宏”,单击“执行宏”,然后在“宏名”框中选择相应的宏。,2从其他宏中运行宏,如果要从其他的宏中运行宏,请将 RunMacro 操作添加到相应的宏中,并且将 宏名 参数设置为要运行的宏名。,3在窗体、报表或控件的事件中运行宏,通常情况下直接运行宏只是进行测试。可以在确保宏的设计无误之后,将宏附加到窗体、报表或控件中,以对事件做出响应,也可以创建一个运行宏的自定义菜单命令。 Mi
17、crosoft Access 可以对窗体、报表或控件中的多种类型事件作出响应,包括鼠标单击、数据更改以及窗体或报表的打开或关闭等。,在Access报表、窗体或控件上添加宏以相应某个事件,操作步骤如下: 在“设计”视图中打开窗体或报表。 创建宏或事件过程。例如,可以创建一个用于在单击命令按钮时显示某种信息的宏或事件过程。 将窗体、报表或控件的适当事件属性设为宏的名称。例如,如果要使用宏在单击按钮时显示某种信息,可以将命令按钮的 OnClick 属性设为用于显示信息的宏的名称。,例7.1 在“图书销售管理系统”中,使用条件宏进行登录密码验证。(例中涉及到了“切换面板”窗体,应事先创建。),4定义快
18、捷键执行宏,用户可以定义快捷键来执行宏或操作。方法是首先创建一个 AutoKeys 宏组,在宏组中定义快捷键执行某个宏或操作。之后,在按下已定义的快捷键时,Microsoft Access 就会执行相应的宏或操作。,7.3.2运行宏组,1.运行宏组中的宏 将鼠标指向“工具”菜单中的“宏”,单击“执行宏”命令,然后选定“宏名”列表中的宏。宏组中的每个宏都会以“宏组名.宏名”的形式出现在列表中。 2.从其他宏中运行组中的宏 指定为 RunMacro 操作的 Macro Name 参数为宏组中的宏名。宏组中的宏名用如下格式表达:宏组名.宏名 3. 在窗体、报表或控件的事件中运行宏 将宏指定为窗体、报
19、表或控件的事件属性设置为“宏组名.宏名”。,7.3.3调试宏,如果创建的宏没有实现预期的效果,或者宏的运行出了错误,就应该对宏进行调试,查找错误。常用的调试方法是通过对宏进行单步执行来发现宏中错误的位置。 使用单步执行宏,可以观察宏的流程和每一个操作的结果,便于发现错误。,本章小结,宏是一个或多个操作的集合,其中每个操作实现特定的功能。它可以将经常重复的一系列的工作步骤自动完成。 宏可以分为三类:操作系列宏、宏组和条件宏。操作序列宏是由一系列的宏操作组成的序列。每次运行该宏时Access都将执行这些操作。宏组是由多个相关的宏组成的,使用宏组是为了便于对相关宏进行管理和使用。条件宏带有“条件”列,通过在条件列制定条件,可以有条件的执行某些操作。如果指定的条件成立,Access将继续执行一个或多个操作;如果指定的条件不成立,Access将跳过该条件所指定的操作。 创建宏要在宏设计窗体中进行。创建宏的过程主要有指定宏名、添加操作、设置操作参数以及提供备注等。 当创建了一个宏后,需要对宏进行运行与调试,以便察看创建的宏是否含有错误,是否能完成预期任务。使用单步执行宏,可以观察宏的流程和每一个操作的结果,便于发现错误。通常情况下直接运行宏只是进行测试,确保宏的设计无误之后,将宏附加到窗体、报表或控件中,对事件做出响应。,