在 Access 中创建自定义功能区

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

功能区 (包含命令组的程序窗口顶部的条带) 是Microsoft Office Fluent 用户界面 的组件。 Office Fluent 用户界面 为Access 中的命令提供了一个 home home。

开始使用Access 构建更多高级应用程序时, 您可能会决定要自定义 Office 流畅功能区, 以便使应用程序更易于使用。 例如, 你可以隐藏部分或全部默认选项卡, 以便用户无法使用某些命令, 并且你可以创建仅包含你希望可用的命令的新自定义选项卡。

在使用Office Fluent 用户界面 的所有 Microsoft Office 程序中, 使用可扩展标记语言 (XML) 自定义功能区。 因此, XML 的一些基本知识非常有用。 本文不介绍 XML 概念, 但它为你提供了基本的功能区自定义过程和一些可以修改以满足你的需要的示例 XML。

本文重点介绍如何使用 XML 创建自己的自定义功能区。 如果要使用内置工具修改现有功能区, 请参阅在 Office 中自定义功能区

想进行什么操作?

了解功能区自定义技术

创建和应用自定义功能区

还原默认功能区

了解 XML 示例

了解功能区自定义技术

在Access 中, 通过创建自定义 XML 并添加代码或设置数据库属性来自定义功能区, 以指示 Access 在创建功能区时使用该 XML。 可以使用 XML 隐藏现有选项卡, 并添加新的选项卡、命令组和命令。 本文中的过程介绍了如何添加内置于 Access 的命令 (如查找、排序和保存), 以及如何添加运行 access 宏的命令。

可以在多个位置存储 XML, 但其中一个最简单的方法是将其存储在当前数据库的系统表中。 该过程包括创建名为 USysRibbons 的系统表、将功能区 XML 添加到其中, 然后指定是为数据库整体还是针对特定的窗体或报表显示自定义功能区。 你可以定义多个自定义功能区: 一个用于整个应用程序, 另一个用于数据库中的单个窗体或报表的附加功能区。

创建和应用自定义功能区

以下各部分提供了创建和应用自定义功能区的分步过程。

准备工作

在导航窗格中显示系统表    默认情况下, 系统表不会显示在导航窗格中, 因此必须首先更改 "导航选项" 对话框中的设置, 以便在创建USysRibbons表后可以看到它。 使用以下过程:

  1. 在 Access 中打开数据库后, 右键单击导航窗格顶部的导航栏, 然后单击快捷菜单上的 "导航选项"。

  2. 在 "导航选项" 对话框中的 "显示选项" 下, 选中 "显示系统对象" 复选框, 然后单击"确定"

    "访问系统" 表将显示在导航窗格中。

启用加载项用户界面错误消息的显示    在创建功能区自定义项和排除功能区时, 错误消息是一个有价值的信息源, 因此最好让 Access 将其显示出来。 使用以下过程:

  1. 单击“文件”>“选项”。 

  2. 单击 "客户端设置"。 

  3. 在 "常规" 下, 选中 "显示外接程序用户界面错误" 复选框, 然后单击"确定"

创建 USysRibbons 系统表

使用此过程创建 USysRibbons 系统表。 稍后, 你将使用此表来存储功能区自定义 XML。

  1. 在“创建”选项卡上的“”组中,单击“表设计”。

  2. 将以下字段添加到表中。 请确保严格按所示方式键入字段名称。

    字段名称

    类型

    字段大小

    ID

    自动编号

    长整型

    RibbonName

    文本

    255

    RibbonXml

    备注

  3. 如果需要, 可以将更多字段添加到此表中, 例如 "注释" 字段来描述功能区 XML 的功能。

  4. 选择 " ID " 字段。 在“设计”选项卡上的“工具”组中,单击“主键”。

  5. 在“快速访问工具栏”上,单击“保存”,或按 Ctrl+S。 将新表命名为 " USysRibbons"。

将功能区自定义 XML 添加到 USysRibbons 表

对于此示例, 假设你希望阻止数据库用户使用 "创建" 选项卡上的任何工具。 此外, 你希望创建一个名为 "自定义" 选项卡的新选项卡, 其中只包含 "粘贴" 命令, 如下图所示。

自定义功能区选项卡

以下过程中的 XML 将创建此配置。

  1. 在导航窗格中, 右键单击 " USysRibbons " 表, 然后单击快捷菜单上的"数据表视图"。

  2. 将以下数据添加到表中。 你可以复制本文中的 XML 示例并将其直接粘贴到表中。

    ID

    RibbonName

    RibbonXML

    即便

    我的选项卡

    <customUI xmlns="http://schemas.microsoft.com
    /office/2006/01/customui">
      <ribbon startFromScratch="false">
        <tabs>
          <tab idMso="TabCreate" visible="false" />
          <tab id="dbCustomTab" label="A Custom Tab" visible="true">
            <group id="dbCustomGroup" label="A Custom Group">
              <control idMso="Paste" label="Built-in Paste" enabled="true"/>
            </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>
    
  3. 此 XML 首先指示 access 不 "从头开始", 也就是说, 它指定 access 应显示默认功能区选项卡。 然后, 它会告诉 Access 只隐藏一个默认选项卡 ("创建" 选项卡)。 最后, 它创建一个名为 "自定义选项卡" 的新功能区选项卡, 将一个名为 "自定义组" 的命令组添加到选项卡, 并将 "粘贴" 命令添加到组中。 有关此示例以及如何对其进行自定义以满足你的需求的详细信息, 请参阅了解 XML 示例一节。

  4. 关闭 USysRibbons 表, 然后关闭并重新打开数据库。

应用自定义功能区

既然自定义功能区 XML 已存储在表中, 请执行下列操作之一, 具体取决于你希望将功能区应用于整个数据库还是特定的窗体或报表。

  • 将自定义功能区应用于整个数据库    

    1. 单击“文件”>“选项”。 

    2. 单击 "当前数据库", 然后在 "功能区和工具栏选项" 下, 选择 "功能区名称" 列表, 然后单击所需的功能区 (在本例中为 "我的选项卡")。

    3. 单击“确定”。

  • 将自定义功能区应用于特定窗体或报表    

    1. 在导航窗格中, 右键单击要对其应用自定义功能区的窗体或报表, 然后单击快捷菜单上的 "设计视图"。

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

    3. 在属性表顶部的 "选择类型" 下, 确保已选中列表中的对象类型 (窗体报表)。

    4. 在属性表的 "其他" 选项卡上, 单击 "功能区名称" 列表, 然后单击打开窗体或报表时要显示的功能区 (在本例中为 "我的选项卡")。

    5. 在“快速访问工具栏”上,单击“保存”,或按 Ctrl+S。

    6. 关闭窗体或报表, 然后在导航窗格中双击它以重新打开它。

      将显示所选的功能区。

验证自定义功能区是否正常工作后, 可以通过执行下列操作再次隐藏系统表:

  1. 右键单击导航窗格顶部的导航栏, 然后单击快捷菜单上的 "导航选项"。

  2. 在 "导航选项" 对话框中的 "显示选项" 下, 清除 "显示系统对象" 复选框, 然后单击"确定"

返回页首

还原默认功能区

若要停止使用自定义功能区并还原默认功能区, 请使用以下过程之一, 具体取决于自定义功能区由整个应用程序使用还是由特定窗体或报表使用。

还原默认的应用程序级功能区

  1. 单击“文件”>“选项”。 

  2. 单击 "当前数据库", 然后在 "功能区和工具栏选项" 下, 删除 "功能区名称" 框中的内容。

  3. 关闭并重新打开数据库。

Access 将显示其默认功能区选项卡。 功能区 XML 保留在 USysRibbons 表中, 直到你删除它, 因此, 如果你想要恢复自定义功能区, 则可以通过将功能区名称选项设置为以前包含的值来执行此操作。

还原窗体或报表的默认功能区

  1. 在 "设计" 视图中打开窗体或报表。

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

  3. 在属性表顶部的 "选择类型" 下, 确保已选中列表中的对象类型 (窗体报表)。

  4. 在属性表的 "其他" 选项卡上, 删除 "功能区名称" 属性框中的内容。

  5. "保存"、"关闭", 然后重新打开窗体或报表。

功能区 XML 保留在 USysRibbons 表中, 直到你删除它, 因此, 如果你想要恢复自定义功能区, 则可以通过将功能区名称属性中的值恢复为以前包含的值来执行此操作。

返回页首

了解 XML 示例

下面是本文前面部分中使用的 XML 示例以及它创建的自定义功能区的插图。

<customUI xmlns="http://schemas.microsoft.com
/office/2006/01/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab idMso="TabCreate" visible="false" />
      <tab id="dbCustomTab" label="A Custom Tab" visible="true">
        <group id="dbCustomGroup" label="A Custom Group">
          <control idMso="Paste" label="Built-in Paste" enabled="true"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

自定义功能区选项卡

在此示例中, XML 的第二行将startFromScratch属性设置为False。 将此值设置为 False 可确保 Access 保留所有现有选项卡, 并将任何新选项卡添加到现有选项卡的右侧。 将此属性设置为True将删除所有现有选项卡, 并仅显示你在 XML 中创建的选项卡。 即使将startFromScratch属性设置为False, 仍然可以隐藏单个选项卡。 这将由第四行 XML (隐藏内置 "创建" 选项卡) 进行演示。 剩余行创建自定义选项卡和自定义组, 然后使用以下 XML 行将内置粘贴命令添加到组中。

<control idMso="Paste" label="Built-in Paste" enabled="true"/>

将其他组或控件添加到自定义功能区    你可以通过添加类似的 XML 行并替换不同的idMso标签值, 将更多组和控件添加到功能区。 例如, 若要创建将当前所选对象导出到 Excel 的控件, 请使用以下 XML。

<control idMso="ExportExcel" label="Export to Excel" enabled="true"/>

若要将控件添加到 "粘贴" 命令所在的组中, 请在创建 "粘贴" 命令的行之前或之后立即插入新的 XML 行。 若要创建新组, 您可以复制、粘贴和修改创建上述自定义组组的 XML。 下面的示例演示将两个控件添加到自定义组的 XML。

<customUI xmlns="http://schemas.microsoft.com
/office/2006/01/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab idMso="TabCreate" visible="false" />
      <tab id="dbCustomTab" label="A Custom Tab" visible="true">
        <group id="dbCustomGroup" label="A Custom Group">
          <control idMso="Paste" label="Built-in Paste" enabled="true"/>
        </group>
        <group id="dbCustomGroup2" label="Another Custom Group">
          <control idMso="ImportExcel" label="Import from Excel" enabled="true"/>
          <control idMso="ExportExcel" label="Export to Excel" enabled="true"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

此 XML 将另一个组添加到自定义选项卡。 如下图所示, 新组包含两个控件, 一个控件从 Excel 启动导入操作, 另一个用于启动 excel 的导出操作。

包含两个组的自定义功能区选项卡

注意: 自定义功能区中的每个组 id选项卡 id值都必须是唯一的。

了解命令的 idMso 值    若要了解内置命令的 idMso 值, 请使用以下过程:

  1. 单击“文件”>“选项”。 

  2. 单击 "自定义功能区" 或 "快速访问工具栏"。 

  3. 将指针移动到所需信息的项目上。 Access 将在屏幕提示中显示控件的 idMso 值 (在括号中)。

添加运行 Access 宏的命令    通过添加运行 Access 宏的命令, 可以为自定义功能区增加更多灵活性。 例如, 假设您创建了一个名为MyMacro的宏。 若要向运行宏的功能区添加命令, 请将以下行添加到 XML。

<button id="RunMyMacro" label="Run My Macro" onAction="MyMacro"/>

若要将该控件添加到与之前示例中的 "粘贴" 命令相同的组中, 请在创建 "粘贴" 命令的行之前或之后立即插入新的 XML 行。 以下示例演示了用于添加命令的 XML。

<customUI xmlns="http://schemas.microsoft.com
/office/2006/01/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab idMso="TabCreate" visible="false" />
      <tab id="dbCustomTab" label="A Custom Tab" visible="true">
        <group id="dbCustomGroup" label="A Custom Group">
          <control idMso="Paste" label="Built-in Paste" enabled="true"/>
         <button id="RunMyMacro" label="Run My Macro" onAction="MyMacro"/>
        </group>
        <group id="dbCustomGroup2" label="Another Custom Group">
          <control idMso="ImportExcel" label="Import from Excel" enabled="true"/>
          <control idMso="ExportExcel" label="Export to Excel" enabled="true"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

返回页首

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

此信息是否有帮助?

谢谢您的反馈!

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

×