Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access2010/2013/2016/2019/2021

彻底玩转MS ACCESS 2016功能区编程设计(05)

时 间:2018-03-15 15:52:39
作 者:Big Young   ID:252  城市:襄阳
摘 要:        定制系统内置的选项卡。
正 文:

定制系统内置的选项卡

         现在我们来学习一下如何修改与定制系统内置的功能区选项卡。打开Access 2016,创建一个新的示例数据库,与前面例子一样加入一个名为UsysRibbons的系统表并做好相关设置,完成后如图5-1所示:

5-1 打开数据库后系统默认介面

         现在Access系统的介面是它内置默认的状态。

一、默认的内置选项卡对项目及其对应的ID

         现在我们来观察一下Access 2016的默认内置的选项卡,我们会发现除了文件这个特殊的选项卡外(这个以后专门研究),由下面几个选项卡组成:开始、创建、外部数据和数据库工具。前面说过功能区介面上的每个元素都有一个与之对应的XML元素来描述,而且每个元素都有一个标识自身与其它元素区别的ID。在Access 2016中,系统内置的元素的ID称这为“idMso”,与用户自己定义的不同,用户自己定义的元素的标识称为“id”,所以,通过idMso我们引用的就是系统内置的功能区元素。

         Access 2016中,“开始”选项卡对应的“idMso”为“TabHomeAccess”,“创建”选项卡对应的“idMso”为“TabCreate”, “外部数据”选项卡对应的“idMso”为“TabExternalData”, “数据库工具”选项卡对应的“idMso”为“TabDatabaseTools”。我们在应用程序开发过程中可以通过idMso来引用系统内置的选项卡,实现对它们的修改与定制。

         不只是选项卡有idMso,所有内置功能区下的元素与控件都有标识自身的idMso,由于数量众多,这里就不一一列出了,需要的话大家可能到微软的网站上去下载,网上提供了所有Office应用程序的内置功能区控件的idMso,地址是:

         https://www.microsoft.com/en-us/download/details.aspx?id=50745

         二、隐藏部分内置选项卡

         前面我们学习如果要全部隐藏内置功能区选项卡,直接通过设置ribbon标签的startFromScratch属性为true就可以实现,可是,如果我们只想隐藏某些内置选项卡,只显示一部分内置选项卡,这种方法就不行了。

         比如说我们相应实现如图5-2所示的效果,隐藏内置的创建数据库工具两个选项卡:

5-2 隐藏了部分选项卡的功能区

         要实现隐藏部分内置选项卡,只需要引用相应选项卡的idMso属性,并将标签的另一个属性“visible”设置为“false”就可以实现了。完整的XML代码如下:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">

  <ribbon>

    <tabs>

      <!-- 隐藏“创建”与“数据库工具”两个先期卡 -->

      <tab idMso="TabCreate" visible="false"/>

      <tab idMso="TabDatabaseTools" visible="false"/>

    </tabs>

  </ribbon>

</customUI>

         将这段代码放入到UsysRibbons表的RibbonXML列中,将RibbonName设置为“MainRibbon”,然后保存并关闭示例数据库。接下来再打开此示例库并应用我们创建功能区再关闭后打开,就可以看到图5-2所示的效果了。

         三、隐藏内置选项卡中的某些组

         前面我们实现了隐藏某些选项卡,下面我们再来学习一下如何隐藏内置选项卡上的某些组以及组中的某些控件。以“开始”选项卡为例,如果我们想隐藏其上的“视图”与“记录”组,而保留其它的组,又该如何实现呢?

         我们先查询一下微软为我们提供的关于系统内置控件的idMso列表,会发现“视图”组对应的“idMso”为“GroupViews”, “剪贴板”组对应的“idMso”为“GroupClipboard”, “排序和筛选”组对应的“idMso”为“GroupSortAndFilter”, “记录”组对应的“idMso”为“GroupRecords”, “查找”组对应的“idMso”为“GroupFindAccess”, “文本格式”组对应的“idMso”为“GroupTextFormatting”等。下面我们通过这些idMso来完成对内置组的操作。下面是我们修改后的XML代码:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">

  <ribbon>

    <tabs>

      <!-- 隐藏“开始”选项卡上的“视图”与“记录”组 -->

      <tab idMso="TabHomeAccess">

        <group idMso="GroupViews" visible="false"/>

        <group idMso="GroupRecords" visible="false"/>

      </tab>

      <!-- 隐藏“创建”与“数据库工具”两个先期卡 -->

      <tab idMso="TabCreate" visible="false"/>

      <tab idMso="TabDatabaseTools" visible="false"/>

    </tabs>

  </ribbon>

</customUI>

         保存并关闭后再打开此示例数据库,我们将看到如图5-3所示的效果:

5-3 隐藏的相关分组的开始选项卡

         通过这种方式,在我们的应用程序解决方案中当某些系统内置的操作不想让最终用户使用时,我们就把它给隐藏起来,达到禁止应用的目的。

         可能我们有些朋友会提出,我们能不能只隐藏系统选项组中的某些控件,并不是整个组呢?例如,现在的系统内置选项卡外部数据表现为如图5-4的样子:

5-4 默认的“外部数据”选项卡

         我们想将导入并链接组中的已保存的导入导出组中的已保存的导出这两个按钮给隐藏起来,现在我们把修改功能区的XML代码修改为如下样子:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">

  <ribbon>

    <tabs>

      <!-- 隐藏“开始”选项卡上的“视图”与“记录”组 -->

      <tab idMso="TabHomeAccess">

        <group idMso="GroupViews" visible="false"/>

        <group idMso="GroupRecords" visible="false"/>

      </tab>

      <!-- 隐藏“创建”与“数据库工具”两个先期卡 -->

      <tab idMso="TabCreate" visible="false"/>

      <tab idMso="TabDatabaseTools" visible="false"/>

      <tab idMso="TabExternalData">

        <group idMso="GroupImport">

          <button idMso="ImportSavedImports" visible="false"/>

        </group>

        <group idMso="GroupExport">

          <button idMso="ExportSavedExports" visible="false"/>

        </group>

      </tab>

    </tabs>

  </ribbon>

</customUI>

         保存后关闭再打开此数据库,我们会看到如图5-5所示的效果:

5-5 试图修改内置控件的错误提示

         这说明了系统不让我们修改系统内置控件的属性,如果我们这样做系统会提示错误,禁止我们操作。由此我们可以得出结论,我们只能对系统内置的选项卡及先期卡中的组进行修改与定制,而不能对内置的控件本身进行修改。



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助