创建宏

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

您可以创建宏执行一系列特定的操作,而您可以创建宏组执行系列相关的操作。

在 Microsoft Office Access 2007 中,宏可以包含在宏对象(有时称为独立的宏)中,它们也可以嵌入在窗体、报表或控件的事件属性中。嵌入的宏成为所嵌入到的对象或控件的一部分。宏对象在导航窗格中的“宏”下可见,嵌入的宏则不可见。

您要做什么?

了解宏生成器

创建独立的宏

创建宏组

创建嵌入的宏

编辑宏

使用条件控制宏操作

了解有关宏操作的详细信息

了解宏生成器

可以使用宏生成器来创建和修改宏。若要打开宏生成器:

  • 创建选项卡中的其他组中,单击。如果此命令不可用,请单击模块类模块按钮下方的箭头,然后单击按钮图像

    随即会显示宏生成器。

宏生成器

在“宏生成器”窗口中,构建在宏运行时要执行的操作的列表。首次打开宏生成器时,会显示“操作”列、“参数”列和“注释”列。

如有必要,请在“操作参数”下每个宏操作的左侧输入和编辑参数。右侧会显示一个说明框,对每个操作或参数进行简短说明。单击一个操作或操作参数即可在该框中看到该操作或参数的说明。

可使用宏生成器“设计”选项卡上的命令创建、测试和运行宏。

下表描述了“设计”选项卡上可用的命令。

命令

说明

工具

运行

执行宏中列出的操作。

单步执行

启用单步执行模式。当在此模式下运行宏时,每次执行一个操作。每完成一个操作,都会显示“单步执行宏”对话框。单击此对话框中的“单步执行”会继续执行下一操作。单击“停止所有宏”将停止该宏以及其他所有正在运行的宏。单击“继续”将退出单步执行模式,在不停止的情况下执行余下的操作。

生成器

当输入可包含表达式的操作参数时,此按钮启用。单击“生成器”将打开“表达式生成器”对话框,您还可以使用该对话框来生成表达式。

插入行

将一个或多个空白操作行插入到选中的一行或若干行的上方。

删除行

删除选定的一个或多个操作行。

显示/隐藏

显示所有操作

“操作”下拉列表中显示更多或更少的宏操作。

  • 若要显示较长的宏操作列表,请单击“显示所有操作”。当有较长的宏操作列表可用时,“显示所有操作”按钮显示为选定状态。如果从较长的宏操作列表中选择一个宏操作,可能需要先授予数据库显式信任状态,然后才能运行此操作。

  • 要从较长的宏操作列表切换到较短的列表(仅显示可以在尚未获得信任的数据库中使用的宏操作),请确保没有选中“显示所有操作”按钮。

    提示: 如果“显示所有操作”按钮处于选定状态,请单击“显示所有操作”按钮清除选定状态。如果未选中“显示所有操作”,则会显示一个较短的可信宏操作列表。

宏名

显示或隐藏“宏名”列。宏名在宏组中是必需的,用于区分不同的宏。但在其他情况下,宏名是可选的。有关详细信息,请参阅创建宏组一节。

条件

显示或隐藏“条件”列。使用此列可以输入控制何时执行操作的表达式。

参数

显示或隐藏“参数”列。此列显示每个宏操作的参数,使用户更容易了解宏。如果没有显示“参数”列,则必须单击每个操作并阅读“操作参数”下的参数。不能在“参数”列中输入参数。

提示: 在 Access 2010,以使其更易于创建、 修改和共享 Access 宏,宏生成器具有经过重新设计。

返回页首

创建独立的宏

  1. 创建选项卡中的其他组中,单击。如果此命令不可用,请单击模块类模块按钮下方的箭头,然后单击按钮图像

    随即会显示宏生成器。

  2. 向宏添加操作:

    • 在宏生成器中,单击“操作”列中的第一个空单元格。

    • 键入要使用的操作,或者单击箭头显示可用操作的列表,然后选择要使用的操作。

      选择宏操作

    • 如有必要,请在“操作参数”(在宏生成器靠下的部分)下为该操作指定参数。

      输入操作参数

      注意: 

      • 当您在“操作参数”窗格中键入参数时,它们将显示在操作列表的“参数”列中。但是,“参数”列仅用于显示;不可在该列中输入参数。

      • 若要查看每个参数的简短说明,请在“操作参数”窗格中单击该参数框,然后阅读相邻框中的说明。

        提示

        • 为其设置为数据库对象名称操作参数 ,您可以通过将对象从导航窗格拖动到操作的对象名称参数框设置参数。

        • 还可以通过将导航窗格中的数据库对象拖到宏生成器中的空行来创建操作。如果将表、查询、窗体、报表或模块拖到宏生成器,Access 会添加一个打开该表、查询、窗体或报表的操作。如果将宏拖到宏生成器,Access 会添加一个运行该宏的操作。

    • (可选)在“注释”列中为该操作键入注释。

  3. 若要向宏中添加更多操作,请移到另一个操作行,然后重复步骤 2。

当您运行宏时,Access 将按照这些操作的列出顺序执行操作。

返回页首

创建宏组

如果要将几个相关的宏组成一个宏对象,可以创建一个宏组。

  1. 创建选项卡中的其他组中,单击。如果此命令不可用,请单击模块类模块按钮下方的箭头,然后单击按钮图像

    随即会显示宏生成器。

  2. 如果尚未选中,请在设计选项卡的显示/隐藏组中,单击宏名 按钮图像

    “宏名”列显示在宏生成器中。

    注意: 在宏组中,宏名是相互区分各个宏所必需的。宏名与宏的第一个操作出现在同一行上。对于宏中的任何后续操作,宏名列保留为空。遇到下一个宏名时,该宏结束。

  3. “宏名”列中,为宏组中的第一个宏键入名称。

  4. 添加您希望第一个宏执行的操作:

    • “操作”列中,单击箭头显示操作列表。

    • 单击要使用的操作。

    • 如有必要,请在“操作参数”下为该操作指定参数。

      要查看每个参数的简短说明,请在参数框中单击,然后阅读参数右侧的说明。

      提示

      • 如果操作参数的设置是数据库对象名称,则可以通过将该对象从导航窗格拖到该操作的“对象名称”参数框中来设置该参数。

      • 还可以通过将导航窗格中的数据库对象拖到宏生成器中的空行来创建操作。如果将表、查询、窗体、报表或模块拖到宏生成器,Access 会添加一个打开该表、查询、窗体或报表的操作。如果将宏拖到宏生成器,Access 会添加一个运行该宏的操作。

    • 可以选择为操作键入注释。

  5. 移动到下一个空行,然后在“宏名”列中键入下一个宏的名称。

  6. 添加您希望该宏执行的操作。

  7. 对宏组中的每个宏重复第 5 步和第 6 步。

下图显示了一个较小的宏组。该宏组包含两个宏,其名称显示在“宏名”列中。每个宏包含两个操作。

宏组示例

注意: 

  • 保存宏组时,您指定的名称就是该宏组的名称。上例中的宏组名称为 Macro3。此名称显示在“导航”窗格中的“宏”下面。若要引用宏组中的某个宏,请使用以下语法:

    macrogroupname.macroname

    例如,在上图中,Macro3.FoundMsg 引用宏组中的第二个宏。

  • 如果您可以通过在导航窗格中双击或单击设计选项卡上的工具组中的运行 按钮图像 运行的宏组,请访问仅执行的第一个宏组中,在达到第二个宏名时停止。

返回页首

创建嵌入的宏

嵌入宏与独立宏不同,因为它们存储在窗体、报表或控件的事件属性中。它们并不作为对象显示在导航窗格中的“宏”下面。这可使数据库更易于管理,因为不必跟踪包含窗体或报表的宏的各个宏对象。而且,在每次复制、导入或导出窗体或报表时,嵌入宏仍随附于窗体或报表。

例如,如果要在报表无数据时阻止报表显示,则可以在报表的“无数据”事件属性中嵌入一个宏。可以使用 MsgBox 操作显示一条消息,然后使用 CancelEvent 操作取消该报表,而不是显示空白页。

  1. 在导航窗格中,右键单击窗体或报表,包含该宏,然后单击设计视图 按钮图像布局视图 按钮图像

  2. 如果属性表未显示,请按 F4 以显示它。

  3. 单击包含要在其中嵌入该宏的事件属性的控件或节。也可以使用属性表顶部的“所选内容的类型”下的下拉列表选择该控件或节(或者整个窗体或报表)。

  4. 在属性表中,单击“事件”选项卡。

  5. 单击要在其中嵌入宏的事件属性,然后单击 “生成器”按钮

  6. “选择生成器”对话框中,单击“宏生成器”,然后单击“确定”

  7. 在宏生成器中,在“操作”列的第一行中单击。

  8. “操作”下拉列表中,单击所需的操作。

  9. “操作参数”下输入所需的任何参数。

  10. 如果要添加另一个操作,请在“操作”列的下一行中单击,并重复第 8 步和第 9 步。

  11. 完成宏后,单击“保存”,然后单击“关闭”

每次触发该事件属性时,宏都会运行。

注意: Access 允许您构建为嵌入的宏的宏组。不过,只有组中的第一个宏运行时触发此事件。组中的后续宏将被忽略。

返回页首

编辑宏

  • 插入操作行    右键单击要在其上方插入新的操作行的操作行,然后单击“插入行” 在查阅表格插入行的按钮图像

  • 删除操作行    右键单击要删除的操作行,然后单击“删除行” 按钮图像

  • 移动操作行    通过单击操作左侧的行标题,然后将它拖到新位置,来选择操作行。

可插入、删除或移动多行,操作方法是先选中这组行,然后执行所需的操作。若要选择一组行,请单击要选择的第一行的行标题,按住 Shift 键,然后单击要选择的最后一行的行标题。(行标题是每个操作行左侧的阴影框。)

另一种选择多行的方法是将指针定位在要选择的第一行的行标题上,然后单击并向上或向下拖动以选择其他行。

注意: 在通过单击并拖动来选择行时,所选的第一行决不可已选中。如果已经选中,则 Access 将假设您要尝试将该行拖动到新的位置。

返回页首

使用条件控制宏操作

可在条件中使用求值结果为 True/False 或“是/否”的任何表达式。如果条件求值结果为 True(或“是”),则宏操作将执行。

若要输入宏操作的条件,必须首先在宏生成器中显示“条件”列:

  • “设计”选项卡上的“显示/隐藏”组中,单击“条件” 按钮图像

“条件”列中键入一个表达式。不要在表达式前面加上等号 (=)。要使某个条件同时应用于多个操作,则在每个后续行中键入 ...。例如:

应用于多个宏操作的条件

提示: 若要使 Access 临时忽略某个操作,则输入 False 作为条件。在试图查找宏问题时,临时忽略某个操作可能很有帮助。

宏条件的示例

使用此表达式

在满足下面的条件时执行该操作

[City]="Paris"

“巴黎 (Paris)”是运行该宏的窗体上“城市 (City)”字段的值。

DCount("[OrderID]", "Orders")>35

“订单 (Orders)”表的“订单 ID (OrderID)”字段中有 35 个以上的条目。

DCount("*", "Order Details", "[OrderID]=Forms![Orders]![OrderID]")>3

“订单明细 (Order Details)”表中存在三个以上满足以下条件的条目:表中的“订单 ID”字段与“订单”窗体上的“订单 ID”字段匹配。

[ShippedDate] Between #2-Feb-2007# And #2-Mar-2007#

运行该宏的窗体上的“发货日期 (ShippedDate)”字段的值不早于 2007 年 2 月 2 日,且不晚于 2007 年 3 月 2 日。

Forms![Products]![UnitsInStock]<5

“产品 (Products)”窗体上的“库存量 (UnitsInStock)”字段的值小于 5。

IsNull([FirstName])

从中运行该宏的窗体上的名字值为(没有任何值)。此表达式是相当于[FirstName] 是Null

[Country]="UK" And Forms![SalesTotals]![TotalOrds]>100

运行该宏的窗体上“国家 (Country)”字段中的值为“英国 (UK)”,并且“总销售额 (SalesTotals)”窗体上的“总订单数 (TotalOrds)”字段的值大于 100。

[Country] In ("France", "Italy", "Spain") And Len([PostalCode])<>5

运行该宏的窗体上“国家”字段中的值为“法国 (France)”、“意大利 (Italy)”或“西班牙 (Spain)”,并且邮政编码长度不是 5 字符。

MsgBox("Confirm changes?",1)=1

MsgBox 函数显示“确认更改?”的对话框中,单击“确定”。如果在该对话框中单击“取消”,Access 将忽略该操作。

[TempVars]![MyVar]=43

临时变量 MyVar 的值 (通过创建SetTempVar宏操作) 等于 43。

[MacroError]<>0

MacroError对象属性的值不等于 0,这意味着宏中出错。可以结合使用此条件ClearMacroErrorOnError宏操作来控制发生错误时,会发生什么情况。

有关表达式的详细信息,请参阅创建表达式一文。

返回页首

了解有关宏操作的详细信息

在宏生成器中工作时,您可以了解有关某个操作或参数的详细信息,方法是单击该操作或参数,并阅读“宏生成器”窗口右下角的框中的说明。而且,每个宏操作都有一个与之关联的“帮助”主题。要了解有关某个操作的详细信息,请从操作列表中选择该操作,然后按 F1。

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×