创建用户界面 (UI) 宏

在 Microsoft Access 中,附加到用户界面(UI)对象(如命令按钮、文本框、窗体和报表)的宏称为 UI 宏。 这会将它们与附加到表的数据宏区分开。 你可以使用(UI)宏自动执行一系列操作,例如打开另一个对象、应用筛选器、启动导出操作以及许多其他任务。 本文将向你介绍新重新设计的宏生成器,并向你显示创建 UI 宏所涉及的基本任务。

注意: 本文不适用于 Access web 应用。

本文内容

概述

宏生成器

创建独立宏

创建嵌入的宏

向宏添加操作

控制程序流程 If,Else If,Else

创建 submacros

将相关的操作组合在一起

展开和折叠宏操作或块

复制和粘贴宏操作

与其他人共享宏

运行宏

调试宏

将宏转换为 VBA 代码

概述

宏可以包含在宏对象(有时称为独立宏)中,也可以嵌入到窗体、报表或控件的事件属性中。 嵌入的宏将成为嵌入它们的对象或控件的一部分。 宏对象显示在导航窗格中的 "" 下;嵌入的宏不是。

每个宏都由一个或多个宏操作组成。 根据你正在使用的上下文,某些宏操作可能不可用。

返回页首

宏生成器

下面是宏生成器主要的一些重要功能。

  • 操作目录    宏操作按类型和可搜索的方式进行组织。

  • IntelliSense    键入表达式时,IntelliSense 会建议可能的值,并允许你选择正确的值。

  • 键盘快捷方式   使用组合键以更快、更轻松地编写宏。

  • 程序流程    通过注释行和操作组创建更易读的宏。

  • 条件语句    允许更复杂的逻辑执行,并且支持嵌套 If/Else if/Else If。

  • 宏重用    操作目录将显示您创建的其他宏,让您可以将它们复制到您正在处理的宏。

  • 更轻松地共享    复制宏,然后将其作为 XML 粘贴到电子邮件、新闻组文章、博客或代码示例网站中。

下面的视频将指导你完成宏生成器的主要区域。

你的浏览器不支持视频。 请安装 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

返回页首

创建独立宏

此过程将创建一个单独的宏对象,该对象将显示在导航窗格中的 "" 下方。 当您希望在应用程序的多个位置重复使用该宏时,独立宏非常有用。 通过从其他宏调用宏,您可以避免在多个位置复制相同的代码。

  1. 在“创建”选项卡上的“宏和代码”组中,单击“”。

    Access 将打开宏生成器。

  2. 在 "快速访问工具栏" 上,单击 "保存"。

  3. 在 "另存为" 对话框中,键入宏的名称,然后单击 "确定"。

  4. 继续使用 "向宏添加操作" 部分。

返回页首

创建嵌入的宏

此过程将创建一个嵌入在对象的事件属性中的宏。 此类宏不会显示在导航窗格中,但可以从事件(如加载单击时)调用。

由于宏成为窗体或报表对象的一部分,因此建议使用嵌入式宏自动执行特定于特定窗体或报表的任务。

  1. 在导航窗格中,右键单击将包含该宏的窗体或报表,然后单击 "布局视图"。

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

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

  4. 在 "属性表" 任务窗格中,单击 "事件" 选项卡。

  5. 在要触发宏的事件的属性框中单击。 例如,对于命令按钮,如果希望在单击按钮时运行宏,请在 "单击时" 属性框中单击。

  6. 如果属性框包含 "嵌入的" 字样,这意味着已为此事件创建了宏。 可以通过继续执行本过程中的剩余步骤来编辑宏。

  7. 如果属性框包含 "关键字[事件过程]",这意味着已经为此事件创建了 Visual Basic for APPLICATIONS (VBA)过程。 在事件中嵌入宏之前,需要删除该过程。 你可以通过删除 words [事件过程]执行此操作,但应首先检查事件过程,以确保删除它不会破坏数据库中的所需功能。 在某些情况下,你可以使用嵌入的宏重新创建 VBA 过程的功能。

  8. 单击 "生成" 按钮 按钮图像

  9. 如果出现 "选择生成器" 对话框,请确保选中 "宏生成器",然后单击"确定"

    Access 将打开宏生成器。 继续下一节,向宏添加操作。

返回页首

向宏添加操作

操作是构成宏的单个命令,每个命令都根据其用途(如FindRecordCloseDatabase)进行命名。

步骤1:浏览或搜索宏操作

添加操作的第一步是在 "添加新操作" 下拉列表或 "操作" 目录中查找它。

注意: 

  • 默认情况下,"添加新操作" 下拉列表和 "操作目录" 仅显示将在不受信任的数据库中执行的操作。 若要查看所有操作,请执行以下操作:

    • 在 "设计" 选项卡上的 "显示/隐藏" 组中,单击 "显示所有操作"。

  • 如果未显示操作目录,请在 "设计" 选项卡上的 "显示/隐藏" 组中,单击 "操作目录"。

若要查找操作,请使用以下方法之一:

  • 单击 "添加新操作" 下拉列表中的箭头,然后向下滚动以查找操作。 程序流程元素首先列出,然后按字母顺序列出宏操作。

  • 在 "操作目录" 窗格中浏览操作。 操作按类别分组。 展开每个类别以查看操作。 如果选择操作,则操作目录底部将显示操作的简短说明。

  • 在 "操作目录" 窗格中,通过在窗格顶部的搜索框中键入内容来搜索操作。 在你键入时,将筛选操作列表以显示包含该文本的所有宏。 Access 将搜索你输入的文本的宏名称及其说明。

步骤2:向宏添加操作

找到所需的宏操作后,使用下列方法之一将其添加到宏:

  • 在 "添加新操作" 列表中选择一个操作,或者只需在框中开始键入操作名称。 Access 将在显示 "添加新操作" 列表的位置添加操作。

  • 将操作从操作目录拖动到 "宏" 窗格。 将显示一个插入栏,显示释放鼠标按钮时将插入操作的位置。

  • 双击 "操作目录" 中的操作。

    • 如果在 "宏" 窗格中选择了某个操作,Access 会将新操作添加到所选活动的正下方。

    • 如果在 "宏" 窗格中选中了如果在 "宏" 窗格中选中了"else"或 " Submacro块"),Access 会将新操作添加到该块。

    • 如果在 "宏" 窗格中未选择任何操作或阻止,Access 会将新操作添加到宏的末尾。

      注意: 

      • 如果您已经创建了一个或多个宏,它们将在 "操作目录" 中的 "此数据库节点" 下列出。

        • 将独立宏(在 "" 下列出的宏)拖动到 "宏" 窗格中会创建一个RunMacro操作,该操作将运行所拖动的宏。 然后,你可以使用下拉列表调用 submacros (如果存在)。

        • 如果只想将独立宏中的操作复制到当前宏(而不是创建RunMacro操作),请在 "操作目录" 中右键单击该操作,然后单击 "添加宏副本"。

        • 将嵌入的宏(在窗体或报表中列出的宏)拖动到 "宏" 窗格中会将该宏的操作复制到当前宏中。

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

步骤3:填写参数

大多数宏操作至少需要一个参数。 你可以查看每个参数的描述,方法是选择该操作,然后将指针移动到参数上。 对于许多参数,您可以从下拉列表中选择一个值。 如果参数要求你在表达式中键入,则 IntelliSense 通过在你键入时建议可能的值来帮助你输入表达式,如下图所示:

使用 IntelliSense 输入表达式

当看到要使用的值时,双击它将其添加到表达式,或使用箭头键突出显示它,然后按 TAB 或 ENTER 键。

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

关于将智能感知与 web 数据库中的属性结合使用

在与 web 兼容的窗体上创建嵌入式 UI 宏时,智能感知允许你将任何 form 属性添加到表达式。 但是,在 web 数据库中,只能通过使用 UI 宏来访问表单属性的子集。 例如,在名为 Form1 的窗体上给定一个名为控件1的控件,IntelliSense 将允许你添加 [Forms]![Form1]![控件 1]。[ControlSource] 到 UI 宏中的表达式。 但是,如果随后将数据库发布到 Access Services,则包含该表达式的宏将在服务器上运行时生成错误。

下表显示了可在 web 数据库中的 UI 宏中使用的属性:

可使用的属性

表单

标题、更新、允许、允许 "允许"

选项卡控件

Visible

标签

标题、可见、前景颜色、背景色

附件

可见,已启用

命令按钮

标题,可见,已启用,前景颜色

Tex tBox

已启用、可见、锁定、前景颜色、背景色、值

复选框

已启用、可见、已锁定、值

图像

可见,背景色

组合框

已启用、可见、已锁定、值

列表框

已启用、可见、已锁定、值

Web 浏览器

Visible

对子

已启用,可见已锁定

导航控件

已启用,可见

移动操作

操作将按顺序执行,从顶部到宏的底部。 若要在宏中向上或向下移动操作,请使用以下方法之一:

  • 将操作向上或向下拖动到所需位置。

  • 选择操作,然后按 CTRL + 向上键或 CTRL + 向下键。

  • 选择操作,然后单击 "宏" 窗格右侧的 "上" 或 "下移" 箭头。

删除操作

若要删除宏操作,请执行下列操作:

  • 选择操作,然后按 DELETE 键。 或者,您可以单击 "宏" 窗格右侧的 "删除(X)" 按钮。

    注意: 

    • 如果删除一组操作(如If块或块),则会同时删除该块中的所有操作。

    • 右键单击宏操作时出现的快捷菜单上也提供 "上"、"下移" 和 "删除" 命令。

返回页首

控制程序流程 If,Else If,Else

若要仅在某些条件为 true 时执行宏操作,请使用If块。 这将替换早期版本的 Access 中使用的 "条件" 列。 你可以使用else扩展if块(Else 除外),否则使用其他顺序,如 VBA 等其他顺序编程语言。

下图显示了一个简单的if块,包括Else ifelse块:

一个包含 If/Else If/Else 语句的宏。

如果 ExpirationDate 字段小于当前日期,则if块将执行。

如果 ExpirationDate 字段等于当前日期,则Else if块将执行。

如果前面的块都不是,则执行Else块。

If块将在此处结束。

将 If 块添加到宏

  1. 从 "添加新操作" 下拉列表中选择 "是",还是将其从 "操作目录" 窗格拖动到 "宏窗格"。

  2. If块顶部的框中,键入确定何时执行该块的表达式。 表达式必须为布尔值(即计算结果为 Yes 或 No 的那个值)。

  3. 通过从块内显示的 "添加新操作" 下拉列表中选择操作,或者将操作从 "操作目录" 窗格拖动到if块,可将操作添加到if块。

添加 Else 或 Else If 块

  1. 选择 " 如果 " 阻止 ",然后在 "阻止" 的右下角,单击"添加其他",否则请单击 "添加其他"

  2. 如果要添加Else If块,请键入确定何时执行该块的表达式。 表达式必须为布尔值(即计算结果为 True 或 False 的值)。

  3. 通过从块内显示的 "添加新操作" 下拉列表中选择或将操作从 "操作目录" 窗格拖到块中,将操作添加到else "阻止"。

    注意: 

    • 在右键单击宏操作时出现的快捷菜单上,要添加的命令( else If)和else块均可用。

    • 如果块的嵌套深度最高可达10级。

返回页首

创建 submacros

每个宏都可以包含多个 submacros。 Submacro 设计为通过RunMacroOnError宏操作的名称调用。

Submacro块添加到宏的方式与宏操作相同,如在宏中添加操作一节中所述。 添加Submacro块后,你可以将宏操作拖动到其中,或者从出现在该块内的 "添加新操作" 列表中选择 "操作"。

注意: 

  • 您也可以通过选择一个或多个操作来创建Submacro块,右键单击操作,然后选择 "创建 Submacro 块"。

  • Submacros 必须始终是宏中的最后一个块;不能在 submacro 下添加任何操作(更多 submacros 除外)。 如果你运行仅包含 submacros 的宏而没有明确命名所需的 submacro,则仅运行第一个 submacro。

  • 若要调用 submacro (例如,在事件属性中或通过使用RunMacro操作或OnError操作),请使用以下语法:

    macroname。 submacroname

返回页首

将相关的操作组合在一起

你可以通过将操作组合在一起并为组分配有意义的名称来提高宏的可读性。 例如,您可以将打开和筛选窗体的操作分组到名为 "打开和筛选表单" 的组中。 这样可以更轻松地查看哪些操作彼此相关。 块不影响执行操作的方式,并且不能单独调用或运行组。 它的主要用途是标记一组操作,以帮助你在阅读宏时理解宏。 此外,编辑大型宏时,你可以将每个组块向下折叠到一行,从而减少你必须执行的滚动次数。

如果要对其进行分组的操作已在宏中,请使用此过程将它们添加到块:

  1. 选择要组合的操作。

  2. 右键单击所选操作,然后单击 "生成组块"。

  3. 块顶部的框中,键入组的名称。

如果操作尚不存在:

  1. 块从 "操作" 目录拖到 "宏" 窗格。

  2. 块顶部的框中,键入组的名称。

  3. 将宏操作从操作目录拖动到块中,或从出现在该块内的 "添加新操作" 列表中选择 "操作"。

块可以包含其他块,并且最多可以嵌套9层。

返回页首

展开和折叠宏操作或块

创建新宏时,宏生成器将显示宏操作,并显示所有参数。 根据宏的大小,你可能需要在编辑宏时折叠部分或全部宏操作(和操作块)。 这使获取宏结构的整体视图变得更容易。 您可以根据需要展开部分或全部操作以进行编辑。

展开或折叠单个宏操作或阻止

  • 单击宏或块名称左侧的加号(+)或减号(-)。 或者,按向上键和向下键选择操作或阻止,然后按向左键或向右键折叠或展开它。

展开或折叠所有宏操作(但不是块)

  • 在 "设计" 选项卡上的 "折叠/展开" 组中,单击 "展开操作" 或 "折叠操作"。

展开或折叠所有宏操作和阻止

  • 在 "设计" 选项卡上的 "折叠/展开" 组中,单击 "全部展开" 或 "全部折叠"。

提示:  你可以通过将指针移动到操作上方的折叠操作来 "速览"。 Access 将在工具提示中显示操作参数。

返回页首

复制和粘贴宏操作

如果需要重复已添加到宏的操作,则可以复制和粘贴现有操作,就像在字处理程序中使用文本段落那样进行复制和粘贴。 粘贴操作时,将在当前所选操作的下方插入这些操作。 如果选择了 "块",则将在该块内粘贴操作。

提示:  若要快速复制所选操作,请按住 CTRL 键并将操作拖动到宏中要复制它们的位置。

与其他人共享宏

将宏操作复制到剪贴板时,可以将宏操作作为可扩展标记语言(XML)粘贴到任何接受文本的应用程序中。 这使你可以通过电子邮件向同事发送宏,或在讨论论坛、博客或其他网站上发布宏。 然后,收件人可以复制 XML 并将其粘贴到 Access 2010 的宏生成器中。 将重新创建宏,就像你编写的一样。

运行宏

可以使用以下任一方法运行宏:

  • 在 "导航" 窗格中双击宏。

  • 使用RunMacroOnError宏操作调用宏。

  • 在对象的事件属性中输入宏名称。 宏将在触发该事件时运行。

返回页首

调试宏

如果运行宏时遇到问题,您可以使用几种工具来获取问题的根源。

将错误处理操作添加到宏

我们建议你在编写宏时向每个宏添加错误处理操作,并永久将它们保留在宏中。 使用此方法时,Access 将在出现错误时显示错误的说明。 错误说明可帮助你了解错误,以便你可以更快地更正问题。

使用以下过程将错误处理 submacro 添加到宏:

  1. 在 "设计" 视图中打开宏。

  2. 在宏的底部,从 "添加新操作" 下拉列表中选择 " Submacro "。

  3. 在 word Submacro右侧的框中,键入 Submacro 的名称,例如ErrorHandler

  4. Submacro块内显示的 "添加新操作" 下拉列表中,选择 " MessageBox宏" 操作。

  5. 在 "消息" 框中,键入以下文本: = [MacroError]. [说明]

  6. 在宏的底部,从 "添加新操作" 下拉列表中选择 " OnError "。

  7. 将 "转到" 参数设置为 "宏名"。

  8. 在 "宏名" 框中,键入错误处理 submacro 的名称(在本例中为ErrorHandler)。

  9. OnError宏操作拖动到宏的最上方。

下图显示了一个具有OnError操作的宏和一个名为ErrorHandler的 Submacro。

一个包含错误处理子宏的宏。

OnError宏操作位于宏的顶部,并且在出现错误时调用ErrorHandler submacro。

ErrorHandler submacro 仅在由OnError操作调用时才运行,并显示描述错误的消息框。

使用 "单步执行" 命令

单步是宏调试模式,可用于一次执行一个操作宏。 执行每个操作后,将出现一个对话框,其中显示有关该操作的信息,以及作为结果出现的任何错误代码。 但是,由于 "单步执行宏" 对话框中没有对错误的描述,因此我们建议使用上一节中所述的错误处理 submacro 方法。

要启动单步模式,请执行以下操作:

  1. 在 "设计" 视图中打开宏。

  2. 在 "设计" 选项卡上的 "工具" 组中,单击 "单步"。

  3. 保存并关闭宏。

下次运行该宏时,将显示 "单步执行宏" 对话框。 该对话框显示有关每个操作的以下信息:

  • 宏名

  • 条件(对于 If 块)

  • 操作名称

  • 参数

  • 错误号(错误号0表示没有出现错误)

逐句通过操作时,单击对话框中的三个按钮之一:

  • 若要查看有关宏中下一个操作的信息,请按步骤

  • 若要停止当前运行的所有宏,请单击 "停止所有宏"。 在下次运行宏时,单步模式仍将生效。

  • 若要退出单步执行模式并继续运行宏,请单击 "继续"。

    注意: 

    • 如果在宏中的最后一个操作后按 "步骤",则在下次运行宏时,单步模式仍将生效。

    • 若要在运行宏时进入单步执行模式,请按 CTRL + BREAK。

    • 若要在宏中的特定点处输入单步模式,请在该位置添加SingleStep宏操作。

    • 单步模式在 Web 数据库中不可用。

返回页首

将宏转换为 VBA 代码

宏提供 Visual Basic for Applications (VBA)编程语言中可用的命令子集。 如果您决定需要比宏提供的功能更多的功能,则可以轻松地将独立宏对象转换为 VBA 代码,然后使用 VBA 提供的扩展功能集。 但是请记住,VBA 代码不会在浏览器中运行;添加到 Web 数据库的任何 VBA 代码仅在 Access 中打开数据库时才会运行。

注意:  不能将嵌入的宏转换为 VBA 代码。

将宏转换为 VBA 代码:

  1. 在导航窗格中,右键单击宏对象,然后单击 "设计视图"。

  2. 在 "设计" 选项卡上的 "工具" 组中,单击 "将宏转换为 Visual Basic"。

  3. 在 "转换宏" 对话框中,指定是否要将错误处理代码和注释添加到 VBA 模块,然后单击 "转换"。

Access 将确认宏已转换,然后打开 Visual Basic 编辑器。 在 "项目" 窗格中双击已转换的宏以查看和编辑该模块。

返回页首

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

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

此信息是否有帮助?

谢谢您的反馈!

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

×