功能区(包含命令组的程序窗口顶部的条带)是 Microsoft Office Fluent 用户界面 的组件。 Office Fluent 用户界面 为 Access 中的命令提供单个主页。
开始使用 Access 生成更高级的应用程序时,你可能会决定要自定义 Office Fluent 功能区,以使应用程序更易于使用。 例如,可以隐藏部分或全部默认选项卡,以便用户无法使用某些命令,并且可以创建新的自定义选项卡,这些选项卡仅包含你希望可用的命令。
在使用 Office Fluent 用户界面 的所有 Microsoft Office 程序中,可以使用可扩展标记语言 (XML) 来自定义功能区。 因此,一些基本的 XML 知识非常有用。 本文不介绍 XML 概念,但提供了基本的功能区自定义过程和一些可以根据需要修改的示例 XML。
本文重点介绍如何使用 XML 创建自己的自定义功能区。 如果要使用内置工具修改现有功能区,请参阅 在 Office 中自定义功能区。
您要做什么?
了解功能区自定义技术
在 Access 中,可以通过创建自定义 XML 并添加代码或设置数据库属性来自定义功能区,以指示 Access 在创建功能区时使用该 XML。 可以使用 XML 隐藏现有选项卡,并添加新选项卡、命令组和命令。 本文中的过程介绍如何将内置命令添加到 Access ((例如 Find、Sort 和 Save) ),以及如何添加运行自己编写的 Access 宏的命令。
可以在多个位置存储 XML,但最简单的方法之一是将其存储在当前数据库的系统表中。 此过程涉及创建名为 USysRibbons 的系统表,向其添加功能区 XML,然后指定自定义功能区是针对整个数据库显示还是为特定窗体或报表显示。 可以定义多个自定义功能区 - 一个用于整个应用程序,另一个功能区用于数据库中的各个窗体或报表。
Create并应用自定义功能区
以下部分提供创建和应用自定义功能区的分步过程。
开始之前
在导航窗格中显示系统表 默认情况下,系统表不显示在导航窗格中,因此必须先更改 “导航选项 ”对话框中的设置,以便在创建 USysRibbons 表后才能看到它。 使用以下过程:
-
在 Access 中打开数据库后,右键单击导航窗格顶部的导航栏,然后单击快捷菜单上的“ 导航选项 ”。
-
在“导航选项”对话框中的“显示选项”下,选择“显示系统对象检查”框,然后单击“确定”。
Access 系统表显示在导航窗格中。
启用加载项用户界面错误消息的显示 在创建和排查功能区自定义 XML 时,错误消息是一个有价值的信息来源,因此最好让 Access 显示它们。 使用以下过程:
-
单击“文件”>“选项”。
-
单击“ 客户端设置”。
-
在“常规”下,选中“显示加载项用户界面错误检查”框,然后单击“确定”。
Create USysRibbons 系统表
使用此过程创建 USysRibbons 系统表。 稍后,你将使用此表来存储功能区自定义 XML。
-
在“创建”选项卡上的“表”组中,单击“表设计”。
-
将以下字段添加到表中。 请确保完全按所示键入字段名称。
字段名称
类型
字段大小
ID
自动编号
长整型
RibbonName
文本
255
RibbonXml
备注
-
如果需要,可以向此表添加更多字段,例如用于描述功能区 XML 函数的“注释”字段。
-
选择 ID 字段。 在“设计”选项卡上的“工具”组中,单击“主键”。
-
在“快速访问工具栏”上,单击“保存”,或按 Ctrl+S。 将新表命名 为 USysRibbons。
将功能区自定义 XML 添加到 USysRibbons 表
就此示例而言,假设要阻止数据库用户使用“Create”选项卡上的任何工具。 此外,还希望创建一个名为“ 自定义选项卡” 的新选项卡,该选项卡上仅包含“粘贴”命令,如下图所示。
以下过程中的 XML 创建此配置。
-
在导航窗格中,右键单击 USysRibbons 表,然后单击快捷菜单上的“ 数据表视图 ”。
-
将以下数据添加到表中。 可以复制本文中的 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>
-
此 XML 首先指示 Access 不要“从头开始”,即指定 Access 应显示默认功能区选项卡。 然后,它告知 Access 仅隐藏 (Create选项卡) 的默认选项卡之一。 最后,它会创建名为“自定义选项卡”的新功能区选项卡,将名为“自定义组”的命令组添加到选项卡,并将“粘贴”命令添加到该组。 有关此示例的详细信息以及如何自定义它以满足你的需求,请参阅 了解 XML 示例部分。
-
关闭 USysRibbons 表,然后关闭并重新打开数据库。
应用自定义功能区
现在,自定义功能区 XML 已存储在表中,请执行下列操作之一,具体取决于是要将功能区应用于整个数据库,还是应用于特定的窗体或报表。
-
将自定义功能区应用于整个数据库
-
单击“文件”>“选项”。
-
单击“当前数据库”,然后在“功能区”和“工具栏选项”下,选择“功能区名称”列表,然后单击所需的功能区(在本例中为“我的选项卡”。
-
单击“确定”。
-
-
将自定义功能区应用于特定窗体或报表
-
在导航窗格中,右键单击要向其应用自定义功能区的窗体或报表,然后单击快捷菜单上的“ 设计视图 ”。
-
如果尚未显示属性表,请按 F4 显示该表。
-
在属性表顶部的 “选择类型”下,确保在列表中选择“ 窗体 ”或 “报表) (对象类型。
-
在属性表的“ 其他 ”选项卡上,单击“ 功能区名称” 列表,然后单击打开窗体或报表时要显示的功能区 (在本例中为 “我的选项卡) ”。
-
在“快速访问工具栏”上,单击“保存”,或按 Ctrl+S。
-
关闭窗体或报表,然后在导航窗格中双击它以重新打开它。
将显示所选功能区。
-
验证自定义功能区是否正常工作后,可以通过执行以下操作再次隐藏系统表:
-
右键单击导航窗格顶部的导航栏,然后单击快捷菜单上的“ 导航选项 ”。
-
在“导航选项”对话框中的“显示选项”下,清除“显示系统对象检查框,然后单击”确定”。
还原默认功能区
若要停止使用自定义功能区并还原默认功能区,请使用以下过程之一,具体取决于自定义功能区是由整个应用程序还是由特定窗体或报表使用。
还原默认的应用程序级功能区
-
单击“文件”>“选项”。
-
单击“ 当前数据库”,然后在 “功能区”和“工具栏选项”下,删除 “功能区名称 ”框的内容。
-
关闭然后重新打开数据库。
Access 显示其默认功能区选项卡。 功能区 XML 一直保留在 USysRibbons 表中,直到将其删除,因此如果要恢复自定义功能区,可以通过将 “功能区名称” 选项设置回之前包含的值来执行此操作。
还原窗体或报表的默认功能区
-
在“设计”视图中打开窗体或报表。
-
如果尚未显示属性表,请按 F4 显示该表。
-
在属性表顶部的 “选择类型”下,确保在列表中选择“ 窗体 ”或 “报表) (对象类型。
-
在属性表的“ 其他 ”选项卡上,删除 “功能区名称 ”属性框的内容。
-
保存、关闭,然后重新打开窗体或报表。
功能区 XML 一直保留在 USysRibbons 表中,直到将其删除,因此,如果要恢复自定义功能区,可以通过将 功能区名称 属性中的值设置回它之前包含的值来执行此操作。
了解 XML 示例
下面是本文前面使用的 XML 示例,以及它创建的自定义功能区的插图。
|
在此示例中,第二行 XML 将 startFromScratch 属性设置为 False。 将值设置为 False 可确保 Access 保持所有现有选项卡不变,并将任何新选项卡添加到现有选项卡的右侧。 将此属性设置为 True 会删除所有现有选项卡,并仅显示你在 XML 中创建的选项卡。 即使将 startFromScratch 属性设置为 False,仍可隐藏各个选项卡。 XML 的第四行演示了这一点,该行隐藏了内置Create选项卡。 其余行创建一个自定义选项卡和一个自定义组,然后使用以下 XML 行将内置的 Paste 命令添加到该组。
<control idMso="Paste" label="Built-in Paste" enabled="true"/> |
将其他组或控件添加到自定义功能区 可以通过添加类似的 XML 行并替换不同的 idMso 和 标签 值,将更多组和控件添加到功能区。 例如,若要创建将当前所选对象导出到 Excel 的控件,请使用以下 XML。
<control idMso="ExportExcel" label="Export to Excel" enabled="true"/> |
若要将控件添加到 “粘贴” 命令所在的同一组,请紧接在创建 Paste 命令的行之前或之后插入新的 XML 行。 若要创建新组,可以复制、粘贴和修改用于创建上述 “自定义组 ”组的 XML。 以下示例演示了将两个控件添加到自定义组的 XML。
|
此 XML 将另一个组添加到 自定义选项卡。 如下图所示,新组包含两个控件-一个从 Excel 启动导入操作,一个启动到 Excel 的导出操作。
注意: 自定义功能区中的每个 组 ID 和 选项卡 ID 值都必须是唯一的。
了解命令的 idMso 值 若要了解内置命令的 idMso 值,请使用以下过程:
-
单击“文件”>“选项”。
-
单击“自定义功能区”或“快速访问工具栏”。
-
将指针移到要了解的项上。 Access 在屏幕提示中以括号显示控件的 idMso 值。
添加命令以运行 Access 宏 可以通过添加运行 Access 宏的命令,为自定义功能区增加更大的灵活性。 例如,假设你创建了一个名为 MyMacro 的宏。 若要向功能区添加运行宏的命令,请将以下行添加到 XML。
<button id="RunMyMacro" label="Run My Macro" onAction="MyMacro"/> |
若要将控件添加到与前面示例中的 Paste 命令相同的组,请在创建 Paste 命令的行之前或之后插入新的 XML 行。 以下示例演示了添加 命令的 XML。
|