Access 2007 中的宏基础知识

本文说明什么是宏,并说明它们如何通过自动完成您经常执行的任务来帮助您节省时间。本文还探究创建和使用宏背后的基本原理,并简要介绍了 Microsoft Office Access 2007 中的宏改进功能。

本文内容

什么是宏?

了解宏

在 Office Access 2007 中的新宏功能

创建宏

运行宏

什么是宏?

宏是一种工具,使您自动执行任务并将功能添加到您的窗体、 报表和控件。例如,如果向窗体中添加命令按钮,您将为宏,该按钮的OnClick事件相关联,宏包含您希望该按钮执行每次单击它时的命令。

在 Access 中,可以将宏看作一种简化的编程语言,这种语言是您通过生成一系列要执行的操作来编写的。生成宏时,从下拉列表中选择每一个操作,然后填写每个操作所必需的信息。通过使用宏,您无需在 Visual Basic for Applications (VBA) 模块中编写代码,即可向窗体、报表和控件中添加功能。宏提供了 VBA 中可用命令的子集,大多数人都认为生成宏比编写 VBA 代码容易。

例如,假设您想要直接从您的数据输入窗体之一启动报表。您可以向窗体添加一个按钮,然后创建启动报表的宏。宏可以独立宏 (在数据库中的单独对象),然后绑定到按钮的OnClick事件,或直接在按钮本身的OnClick事件可以嵌入的宏 — Office Access 2007中的新增功能。两种方法,当您单击按钮,该宏运行,并启动报表。

可以使用下图中显示的宏生成器来创建宏。

宏生成器

要显示宏生成器,请执行下列操作:

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

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

返回页首

了解宏

术语宏通常用于指独立宏对象 (即,您看到在导航窗格中的的对象),但事实上,一个宏对象可以包含多个宏。在这种情况下,它称为宏组。宏组显示为单个宏对象,在导航窗格中,但宏组实际上包含多个宏。当然,就可以创建一个单独的宏的对象,每个宏,但通常更有意义进行分组到一个宏对象的多个相关的宏。在宏名列的名称标识每个宏。

一个宏由单个宏操作组成。大多数操作都需要一个或多个参数。此外,可以为宏组中的每个宏指定名称,并且可以通过添加条件来控制每个操作的运行方式。下列各部分将详细论述其中的每个功能。

宏名

如果您的宏对象包含只有一个宏,宏名是必需的。您可以只需将该宏参考宏对象的名称。但是,对于的宏组中,必须为每个宏分配一个唯一名称。如果在宏生成器中看不到宏名列,请单击设计选项卡上的显示/隐藏组中的宏名称 按钮图像 。本文稍后出现有关宏组中运行宏的详细信息。

实参

参数是一个值,它向操作提供信息,例如,要在消息框中显示的字符串、要操作的控件等。有些参数是必需的,有些参数是可选的。参数显示在宏生成器底部的“操作参数”窗格中。

输入操作参数

Office Access 2007宏生成器的一项新功能是参数列中同一行中的操作允许您查看 (但不能进行编辑) 该操作的参数。这使得更易于阅读您的宏,因为您不再需要选择每个操作来显示其参数。若要显示参数列中,单击设计选项卡上的显示/隐藏组中的参数 按钮图像

条件

条件指定在执行操作之前必须满足的某些标准。您可以使用计算结果等于 True/False 或“是/否”的任何表达式。如果表达式计算结果为 False、“否”或 0(零),将不会执行此操作。如果表达式计算结果为其他任何值,将运行该操作。

可以让一个条件控制多个操作,方法是在您希望应用该条件的每个后续操作的“条件”列中键入省略号 (...)。如果表达式计算结果为 False、“否”或 0(零),将不会执行其中任何操作。如果条件的计算结果为其他任何值,将执行所有操作。

显示条件列在宏生成器中,在设计选项卡上的显示/隐藏组中,单击条件 按钮图像

使用此表达式执行操作

如果:

[城市]="巴黎"

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

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

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

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

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

[发货日期] Between #2006-02-02# And #2006-03-02#

运行该宏的窗体上的“发货日期”字段的值不早于 2006-02-02,不晚于 2006-03-02。

Forms![Products]![UnitsInStock]<5

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

IsNull([FirstName])

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

[国家/地区]="英国" And Forms![总销售额]![总订单数]>100

运行该宏的窗体上的“国家/地区”字段中的值为“英国”,并且“总销售额”窗体上的“总订单数”字段的值大于 100。

[国家/地区] In ("法国", "意大利", "西班牙") And Len([邮政编码])<>5

运行该宏的窗体上的“国家/地区”字段中的值为“法国”、“意大利”或“西班牙”,并且邮政编码非 5 字符长。

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

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

[TempVars]![MsgBoxResult]=2

用于存储消息框结果的临时变量与 2 进行比较 (vbCancel=2)。

提示: 若要 Access 临时跳过某项操作,请输入 False 作为条件。在解决宏中的问题时,临时跳过某项操作可能非常有用。

宏操作

操作是宏的基本构建基块。Access 提供大量操作,您可以从中进行选择,创建各种命令。例如,一些更常用的操作可能打开报表,查找记录,显示消息框,或对窗体或报表应用筛选器。

返回页首

Office Access 2007 中的新增宏功能

在 Access 的早期版本中,在不编写 VBA 代码的情况下,无法执行许多常用的功能。在 Office Access 2007 中,添加了新的功能和宏操作,使您不再需要编写代码。这样,您就可以更容易地向数据库中添加功能,并有助于提高安全性。

  • 嵌入的宏    现在,您能够在窗体、报表或控件提供的任意事件中嵌入宏。嵌入的宏在导航窗格中不可见;它成为了创建它的窗体、报表或控件的一部分。如果为包含嵌入式宏的窗体、报表或控件创建副本,则这些宏也会存在于副本中。

  • 提高了 安全   时不在宏生成器中突出显示显示所有操作 按钮图像 按钮,仅宏操作和可供使用的 RunCommand 参数是指那些不需要运行的受信任的状态。即使数据库处于禁用模式 (当 VBA 阻止运行) 时,将运行生成这些操作的宏。包含不是受信任的列表的宏操作的数据库,或包含 VBA 代码的数据库 — 需要显式授予受信任的状态。

  • 错误处理和调试    Office Access 2007提供新宏操作,包括OnError (类似于 VBA 中的"在错误"语句) 和ClearMacroError,允许您在运行宏时出现错误时执行特定操作。此外,新的SingleStep宏操作可以输入单步执行模式随时在您的宏,以便您可以看到您的宏的工作原理,一次一个操作。

  • 临时变量   三个新宏操作 (SetTempVarRemoveTempVarRemoveAllTempVars),可以创建和使用临时变量中您的宏。您可以使用这些条件表达式控制运行宏,或将数据传入和从报表或窗体,或出于任何其他目的需要临时存储位置的值。这些临时变量也是在 VBA 中,可以访问的因此您也可以使用这些通信 VBA 模块与数据。

返回页首


创建宏

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

宏生成器功能

创建独立的宏

创建宏组

创建嵌入的宏

示例︰ 在报表的无数据事件中嵌入宏

编辑宏

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

宏生成器功能

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

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

    Access 显示宏生成器。

使用宏生成器来生成要在宏运行过程中执行的操作列表。首次打开宏生成器时,会显示“操作”列、“参数”列和“注释”列。

“操作参数”下,输入和编辑每个宏操作的参数(如果需要)。会显示一个给出每个操作或参数的简短说明的说明框。单击操作或操作参数可以阅读此框中的说明。

下表显示了宏生成器的“设计”选项卡上可用的命令。

命令

描述

工具   

运行   

执行宏中列出的操作。

单步执行   

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

生成器   

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

   

插入行   

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

删除行   

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

显示/隐藏   

显示所有操作   

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

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

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

    提示: 如果“显示所有操作”按钮处于选定状态,请单击“显示所有操作”按钮清除选定状态。

    如果未选中“显示所有操作”,则会显示一个较短的可信宏操作列表。

宏名   

显示或隐藏宏名列。宏名中需要宏组来区分各个宏从相互分开,但否则宏名是可选。有关详细信息,请参阅本文后面的部分创建的宏组、。

条件   

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

参数   

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

返回节首

创建独立的宏

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

  • 随即会显示宏生成器。

  • 向宏添加操作:

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

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

    3. 操作参数,下指定参数的操作,如有必要。要查看每个参数的简短说明,请在参数框中,单击,然后阅读在右侧参数的说明。
      Tips

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

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

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

  • 若要向宏中添加更多操作,请移到另一个操作行,然后重复步骤 2。Access 按照列出顺序执行操作。

返回节首

创建宏组

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

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

  • 随即会显示宏生成器。

  • 如果尚未选中它,请在设计选项卡的显示/隐藏组中,单击宏名 按钮图像宏名列将显示在宏生成器。

    注意: 在宏组中,宏名是标识各个宏所必需的。宏名与宏的第一个操作出现在同一行上。对于宏中的任何后续操作,宏名列保留为空。宏结束于宏名列中的下一个条目。

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

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

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

    2. 单击要添加的操作。

    3. 操作参数,下指定参数的操作,如有必要。要查看每个参数的简短说明,请在参数框中,单击,然后阅读在右侧参数的说明。
      Tips

      • 对于其设置为一个数据库对象名称的操作参数,可以通过将对象从导航窗格拖到操作的“对象名称”参数框来设置参数。

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

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

  • 移到下一个空行的“宏名”列,然后键入宏组中下一个宏的名称。

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

  • 对组中的每个宏重复步骤 5 和 6。

注意: 

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

  • 保存宏组时,指定的名称是整个宏组的名称。此名称显示在“导航”窗格中的“宏”下面。若要引用宏组内的单个宏,请使用以下语法:

    macrogroupname.macroname

    例如,钮扣引用按钮宏组中的产品宏。列表中的宏,宏名参数列表RunMacro操作,如 Access 将显示为钮扣产品宏。

返回节首

创建嵌入的宏

嵌入的宏与独立宏的不同之处在于,嵌入的宏存储在窗体、报表或控件的事件属性中。它们并不作为对象显示在导航窗格中的“宏”下面。这使得数据库易于管理,因为您不必跟踪包含窗体或报表的宏的单独宏对象。请使用以下过程创建嵌入的宏。

  1. 打开窗体或报表设计视图或布局视图中的宏包含。若要打开窗体或报表,请在导航窗格中,右键单击它,然后单击设计视图 按钮图像布局视图 按钮图像

  2. 如果尚未显示属性表,请按 F4 显示该表。

  3. 单击包含要在其中嵌入该宏的事件属性的控件或节。

    若要选择整个窗体或报表,请在属性表顶部的下拉列表中单击“报表”

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

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

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

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

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

  9. “操作参数”窗格中填写需要的任何参数,然后移到下一操作行。

  10. 重复步骤 8 和 9,直到宏完成。

  11. 单击保存 按钮图像 ,然后单击关闭 按钮图像

该宏将在该事件每次触发时运行。

注意: Access 允许您构建为嵌入的宏的宏组。不过,只有组中的第一个宏运行时触发此事件。除非从调用嵌入宏本身 (例如,通过OnError操作),后续宏将被忽略。

返回节首

示例:在报表的“无数据”事件中嵌入一个宏

当运行报表时,如果它的数据源不包含任何记录,该报表将显示一个空页,即没有任何数据的页。您可能希望显示消息框,而根本不希望显示报表。在这种情况下,使用嵌入的宏是一种理想的解决方案。 

  1. 在设计视图或布局视图中打开报表。

  2. 如果尚未显示属性表,请按 F4 显示该表。

  3. 在该属性表上,单击“事件”选项卡。

  4. 单击“无数据”

  5. 单击 “生成器”按钮

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

  7. 输入下表中的操作和参数。

操作

参数

MsgBox

“未找到任何记录。”、“是”、“信息”、“无数据”

CancelEvent

[无参数]

  1. 请注意,上表显示的是出现在“参数”列中的参数。它们实际是在“操作参数”下输入的,详见下表。

操作参数

邮件正文

未找到任何记录。

发嘟嘟声

可以

输入

信息

标题

无数据

  1. 单击“关闭”

    宏生成器关闭,“无数据”事件显示“[嵌入的宏]”

  2. 保存并关闭该报表。

下一次运行报表时,如果找不到任何记录,将显示此消息框。在消息框中单击“确定”时,报表取消,并且不显示空页。

返回节首

编辑宏

  • 若要插入操作行    单击要插入新操作,其上方的宏行,然后在设计选项卡的组中,单击插入行 在查阅表格插入行的按钮图像

  • 若要删除操作行    单击要删除的操作行,然后在设计选项卡的组中,单击删除行 按钮图像

  • 移动操作行    通过单击操作名称左侧的行选择器选择操作。拖动行选择器将操作移到一个新位置。

返回页首

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

使用宏生成器时,可以单击操作或参数,然后在“宏生成器”窗口右下角的方框中阅读说明,从而了解有关该操作或参数的详细信息。此外,每个宏操作都有一个相关的帮助主题。若要了解有关操作的详细信息,请在操作列表中单击该操作,然后按 F1。

返回页首

运行宏

独立宏才能运行任何以下方法︰ 直接 (例如,从导航窗格中),在宏组中,从另一个宏,从 VBA 模块,或在响应窗体、 报表或控件发生的事件。宏嵌入在窗体、 报表,或者,可以通过在设计视图; 宏时,请单击设计选项卡上的运行 按钮图像 运行控件否则,每当触发关联的事件时,才会运行该宏。

直接运行宏

若要直接运行宏,执行下列操作之一:

  • 在导航窗格中定位到宏,然后双击宏名。

  • 数据库工具选项卡上的组中,单击运行宏 按钮图像 ,单击宏名列表中的宏,然后单击确定

  • 如果在设计视图中打开该宏,请单击在设计选项卡上,在工具组中的运行 按钮图像 。若要在设计视图中打开该宏,请在导航窗格中,右键单击它,然后单击设计视图 按钮图像

运行宏组中的宏

若要运行宏组中的宏,执行下列操作之一:

  • 数据库工具选项卡上的组中,单击运行宏 按钮图像 ,,然后单击在宏名称列表中的宏。

    Access 的每个宏组中,在格式macrogroupname.macroname中包括的每个宏一个条目。

  • 单击“确定”。

  • 作为事件属性设置在窗体或报表上或作为RunMacro操作的宏名参数指定的宏。使用以下语法,请参阅该宏︰

    macrogroupname.macroname

    例如,以下事件属性设置运行名为 Form Switchboard Buttons 的宏组中名为 Categories 的宏:

    Form Switchboard Buttons.Categories

  • 运行宏属于 VBA 过程中的宏组中,通过使用RunMacro方法DoCmd对象,并使用前面显示宏引用的语法。

从另一个宏或者从 VBA 进程中运行宏

RunMacro操作添加到您的宏或过程。

  • 要添加到宏RunMacro操作,请单击RunMacro空白操作行中,在操作列表中,然后将宏名参数设置为您想要运行的宏的名称。

  • 若要添加一个 VBA 过程RunMacro操作,将RunMacro方法DoCmd对象添加到您的过程,然后指定要运行的宏的名称。例如,以下RunMacro方法的实例运行名为我的宏的宏︰

DoCmd.RunMacro "My Macro"

为响应窗体、报表或控件中的事件而运行宏

尽管您现在可以直接将宏嵌入窗体、报表和控件的事件属性中,但是您仍然可以创建独立的宏,然后将它们绑定到事件。这是宏在早期版本的 Access 中的使用方式。

  1. 生成独立宏后,在设计视图或布局视图中打开窗体或报表。

  2. 打开窗体或报表的属性表,或者打开窗体或报表上的节或控件的属性表。

  3. 单击“事件”选项卡。

  4. 单击您想要触发宏的事件的事件属性。例如,要更改事件启动该宏,请单击更改属性。

  5. 在下拉列表中,单击独立宏的名称。

  6. 保存窗体或报表。

返回页首

注释: 

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

  • 请在 此处 中查找本文的英文版本以便参考。你和 Microsoft 社区的其他成员可以使用 Community Translation Framework (CTF) 来改进本文。只需将鼠标悬停在文章中的句子上,然后在 CTF 小组件中单击“IMPROVE TRANSLATION”即可。 单击此处了解有关 CTF 的详细信息。 使用 CTF 即表示你同意服务条款

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

此信息是否有帮助?

谢谢您的反馈!

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

×