Access教程 第七章 宏

来源:百度文库 编辑:神马文学网 时间:2024/04/28 08:39:58
本章内容
◆ 宏的概念和功能
◆ 宏的建立和应用
宏是一个或多个操作的集合,其中每个操作执行特定的功能。如果用户频繁地重复同一系列操作,就可以创建宏来执行这些操作。宏由一些操作和命令组成,这些操作和命令用来完成自动化操作。用户可以通过创建宏来自动执行某一项重复的或者复杂的任务。
在创建宏时,就定义了一系列任务,只要启用宏,Access就执行了这些任务。
一、宏的功能
宏是一种功能强大的工具,可用来在Access 2003 中自动执行许多操作。通过宏的自动执行重复任务的功能,可以保证工作的一致性,还可以避免由于忘记某一操作步骤而引起的错误。宏节省了执行任务的时间,提高了工作效率。
宏的具体功能如下:
◆ 显示和隐藏工具栏。
◆ 打开和关闭表、查询、窗体和报表。
◆ 执行报表的预览和打印操作以及报表中数据的发送。
◆ 设置窗体或报表中控件的值。
◆ 设置Access工作区中任意窗口的大小,并执行窗口移动、缩小、放大和保存等操作。
◆ 执行查询操作,以及数据的过滤、查找。
◆ 为数据库设置一系列的操作,简化工作。
二、创建宏
单击数据库窗口的【宏】选项卡中的【新建】按钮,即可打开宏的定义窗口和宏的设计工具栏。
1.宏设计的基础知识
【宏设计】工具栏:

【宏名】    显示宏定义窗口中的“宏名”列。
【条件】    显示宏定义窗口中的“条件”列。
【插入行】  在宏定义表中设定的当前行的前面增加一空白行。
【删除行】  删除当前行。
【运行】    运行宏。
【单步】    单步运行宏。
【生成器】  设置宏的操作参数。
宏定义窗口如下:

默认情况下,宏定义窗口上面部分由两列组成:操作和注释列。
【操作】列      在此列中输入宏中所有操作,运行时将按照输入顺序执行操作。
【注释】列      在此列中输入对应操作的备注说明。
【宏名】列      在此列中输入宏的名称,在多个操作的宏组中这一列是必选的。
【条件】列      在此列中输入条件表达式,以决定运行宏的条件。
【操作参数列】  用以设定操作的相关参数。
在操作列中,提供了50多种操作,用户可以从这些操作中做选择,创建自己的宏。而对于这些操作,用户可以通过查看帮助,从中了解每个操作的含义和功能。
⑴ 在宏中添加操作
主要操作说明:
◆ AddMenu  将菜单添加到窗体或报表的自定义菜单栏,菜单栏中每个菜单都需要一个独立的AddMenu操作。此外,也可以为窗体、窗体控件或报表添加自定义快捷菜单,或为所有的窗口添加全局菜单栏或全局快捷菜单。
◆ ApplyFilter  对表、窗体或报表应用筛选、查询或SQL WHERE子句,以便对表的记录、窗体、报表的基础表或基础查询中的记录进行相应的操作。对于报表,只能在其“打开”事件属性所指定的宏中使用该操作。
◆ Beep 可以通过计算机的扬声器发出嘟嘟声,一般用于警告声。
◆ CancelEvent  取消一个事件,该事件导致Access执行包含宏的操作。
◆ Close    关闭指定的Access窗口。如果没有指定窗口,则关闭活动窗口。
◆ CopyObject   将指定的数据库对象复制到另外一个Access数据库(.mdb)中。或以新的名称复制到同一数据库或Access项目(.adp)中。
◆ CopyDatabaseFile 为当前的与Access项目连接的SQL Server 7.0或更高版本数据库作副本。
◆ DeleteObject 删除指定的数据库对象。
◆ Echo 指定是否打开回响。例如:可以使用该操作在宏运行时隐藏或显示运行结果。
◆ FindNext 查找下一个符合前一个FindRecord操作或【在字段中查找】对话框中指定条件的记录。
◆ FindRecord   查找符合FindRecord参数指定条件的数据的第一个实例。该数据可能在当前的记录中,在之前或之后的记录中,也可以在第一个记录中,还可以在活动的数据表、查询数据表、窗体数据表或窗体中查询记录。
⑵ 设置操作参数
选定操作后,在【操作参数】区域会出现相应的操作参数。可以在各操作参数对应的文本框中输入数值,以设定操作参数的属性。如上图中。也可以使用表达式生成器生成的表达式设置操作参数。
⑶ 创建宏组
如果有多个宏,可将相关的宏设置成宏组,以便于用户管理数据库。使用宏组可以避免单独管理这些宏的麻烦。

在数据库窗口中的宏名称列表中将显示宏组名称。如果要指定宏组中的某个宏,应使用如下结构:【宏组名.宏名】。
⑷ 宏中的条件操作
有时用户可能希望仅仅在某些条件成立的情况下才在宏中执行某个或某些操作。宏中的条件可以达到这个目的。
2.创建AutoKeys宏
Autokeys宏通过按下指定给宏的一个键或一个键序触发。为AutoKeys宏设置的键击顺序称为宏的名字。例如:名为F5的宏将在按下F5键时运行。
命名AutoKeys宏时,使用符号“^”表达Ctrl键。下表列出了可用来运行AutoKeys宏的组合键的类型:
语法            说明                    示例
————————————————————————
^number         Ctrl+任一数字           ^3
F*              任一功能键              F5
^F*             Ctrl+任一功能键         ^F5
+F*             Shift+任一功能键        ↑F5
————————————————————————
创建AutoKeys宏时,必须定义宏将执行的操作,如打开一个对象,最大化一个窗口或显示一条消息。另外还需要提供操作参数,宏在运行时需要这种参数,如要打开的数据库对象、要最大化的窗口或要在对话框中显示的消息的名称。
下面举例说明:
◆ 新建宏,显示宏名列,在宏名列中输入宏名“^1”,在操作列中选择操作。

◆ 选择操作OpenForm,设置相应的参数。

◆ 用同样的方法建立其它三个宏。

◆ 以AutoKeys为宏保存宏组。

这时只需按下Ctrl+1就会打开【供应商】窗体,Ctrl+2最大化该窗体,Ctrl+3最小化该窗体,Ctrl+4关闭该窗体。
3.创建条件宏
条件宏是满足一定条件后才运行宏。利用条件宏可以显示一些信息,如雇员输入了订单却忘记了输入雇员号,则可利用宏来提醒雇员输入遗漏的信息。或者进行数据的有效性检查。
要创建条件宏,需要向【宏】窗口添加【条件】列,单击【宏设计】工具栏上的【条件】按钮,并输入使条件起作用的宏的规则即可。如果设置的条件为真,宏就运行。如果设置的条件为假,就转到下一个操作。
下面举例说明:
◆ 新建宏,显示条件列,输入条件。选择操作和参数。

◆ 以名MoreThan1000保存宏,并关闭之。
◆ 在设计窗口打开“雇员销售明细金额窗体”,并在金额控件的属性中设置事件。


◆ 金额超过1000元时,将鼠标进入金额框再离开时,有如下提示:

4.创建事件宏
事件是在数据库中执行的操作,如单击鼠标、打开窗体或打印报表。可以创建只要某一事件发生就运行宏。例如在使用窗体时,可能需要在窗体中反复地查找记录,打印记录,然后前进到下一条记录。可以创建一个宏来自动地执行这些操作。
Access 2003 可识别大量的事件,但可用的事件并非一成不变,这取决于事件将要触发的对象类型。下表给出了几个常用的可指定给宏的事件。
事件                     说明
————————————————————————————
OnOpen                当一个对象被打开且第1条记录显示之前执行
OnCurrent             当对象的当前记录被选中时执行
OnClick                当用户单击一个具体的对象时执行
OnClose                当对象被关闭并从屏幕上清除时执行
OnDblClick           当用户双击一个具体对象时执行
OnActivable           当一个对象被激活时执行
OnDeactivate         当一个对象不再活动时执行
BeforeUpdate         在用更改后的数据更新记录之前执行
AfterUpdate           在用更改后的数据更新记录之后执行
————————————————————————————
下面举例说明事件宏的创建。







三、运行宏
创建完一个宏后,就可以运行宏执行各个操作。当运行宏时,Access2003 会运行宏中的所有操作,直到宏结束。
可以直接运行宏,或者从其宏或事件过程中运行宏,也可以作为窗体、报表或控件中出现的事件响应运行宏。也可以创建自定义菜单命令或工具栏按钮来运行宏,将某个宏设定为组合键,或者在打开数据库时自动运行宏。
1.直接运行宏
如果希望直接运行宏,通过双击宏名、通过【工具】【宏】|【运行宏】、通过单击工具栏上的【执行】按钮等操作,可以直接运行宏。


2.在宏组中运行宏
要把宏作为窗体或报表中的事件属性设置,或作为RunMacro(运行宏)操作中的Macro Name(宏名)说明,可以用如下格式指定宏:
[宏组名.宏名]

3.从其他宏或VB程序中运行宏
如果要从其他的宏或VB过程中运行宏,请将RunMacro操作添加到相应的宏或过程中。
如果要将RunMacro操作添加到宏中,在宏的设计视图中,请在空白操作行选择RunMacro选项,并且将MacroName参数设置为相应的宏名即可。
如果要将RunMacro操作添加到VB过程中,请在过程中添加DoCmd对象的RunMacro方法,然后指定要运行的宏名即可。如语句:DoCmd.RunMacro “My Macro”。
下面看一下RunMacro操作。在下列三种情况下使用这个操作:
◆ 从另一个宏运行宏。
◆ 执行基于某个条件的宏。
◆ 将宏附加到一个自定义的菜单命令上。
RunMacro操作的参数如下:
操作参数              描述
————————————————————————————————————
宏名                     执行的宏的名称
重复次数              宏执行的最大次数。空白为一次
重复表达式          表达式结果为True(-1)或False(0)。如果为假,则宏停止运行。
————————————————————————————————————
如果用户在【宏名】参数中设置宏组名,则会运行组中第一个宏。
4.从控件中运行宏
如果希望从窗体、报表或控件中运行宏,只需单击设计视图中的相应控件,在相应的属性对话框中选择【事件】选项卡的对应事件,然后在下拉列表框中选择当前数据库中的相应宏。这样在事件发生时,就会自动执行所设定的宏。
例如建立一个宏,执行操作“Quit”,将某一窗体中的命令按钮的单击事件设置为执行这个宏,则当在窗体中点击按钮时,将退出Access。
5.在菜单或工具栏中运行宏
可以将宏添加到菜单或工具栏中,从而在菜单或工具栏中运行宏。首先选择【视图】|【工具栏】|【自定义】命令,Access2003弹出一个【自定义】对话框。将其图标直接拖动到菜单或工具栏中即可。单击该宏的图标即可运行宏。

6.将一个或一组操作设定成快捷键
可以将一个操作或一组操作设置成特定的键或组合键。可以通过如下步骤来完成:
◆ 在数据库窗口中单击【对象】栏下的【宏】按钮。
◆ 单击工具栏中的【新建】按钮。
◆ 单击工具栏上的【宏名】按钮。
◆ 在【宏名】列中为一个操作或一组操作设定快捷键。
◆ 添加希望快捷键执行的操作或操作组。
◆ 保存宏。
保存宏后,以后每次打开数据库时,设定的快捷键都将有效。
此外还可以创建一个在第一次打开数据库时运行的特殊的宏:AutoExec宏。它可以执行诸如这样的操作:打开数据输入窗体、显示消息框提示用户输入、发出表示欢迎的声音等。一个数据库只能有一个名为AutoExec的宏。