我注意到即使禁用“使用访问特殊键”,禁用“显示导航窗格”,并禁用功能区菜单,您也可以轻松访问“访问选项”转到当前的数据库区域,并重新启用所有这些选项。
有没有办法完全隐藏Access 2007和2010中的“当前数据库”选项?
答案 0 :(得分:14)
在MS Access 2007和MS Access 2010中,可以控制“Backstage”的内容,而不是setting options来控制用户对应用程序的访问权限。所有图像和说明均适用于Access 2010,但2007年并没有太大差异。首先阅读Customize the Ribbon。
后台
首先,右键单击导航窗格顶部的导航栏,然后单击快捷菜单上的“导航选项”。在“导航选项”对话框的“显示选项”下,选中“显示系统对象”复选框,然后单击“确定”。这将允许您查看您创建的表。请注意,这适用于所有数据库,因此您可能希望在完成后将其关闭。
接下来,在“选项”下,选择“客户端设置”并向下滚动到“常规”。您将看到显示加载项用户界面错误,确保选中它。
您需要一个名为USysRibbons的表:
Create Table USysRibbons (ID Counter Primary Key,
RibbonName Text(255),RibbonXml Memo)
您可能希望为RibbonName添加唯一索引,否则您最终可能会使用多个具有相同名称的功能区。
您需要一些XML,您只需剪切并粘贴到新创建的表中即可。
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<!-- Ribbon XML -->
</ribbon>
<backstage>
<button idMso="FileSave" visible="false"/>
<button idMso="SaveObjectAs" visible="false"/>
<button idMso="FileSaveAsCurrentFileFormat" visible="false"/>
<button idMso="FileOpen" visible="false"/>
<button idMso="FileCloseDatabase" visible="false"/>
<tab idMso ="TabInfo" visible="false"/>
<tab idMso ="TabRecent" visible="false"/>
<tab idMso ="TabNew" visible="false"/>
<tab idMso ="TabPrint" visible="false"/>
<tab idMso ="TabShare" visible="false"/>
<tab idMso ="TabHelp" visible="false"/>
<button idMso="ApplicationOptionsDialog" visible="false"/>
<button idMso="FileExit" visible="false"/>
</backstage>
</customUI>
将功能区名称设置为“BackstageCustom”。应该相当明显哪条线与Backstage的哪一部分有关。
您现在必须关闭并重新打开数据库(Compact&amp; Repair可能是执行此操作的最快方法,但请确保在使用此方法之前进行备份)。这将有很多开放和结束。
您现在可以转到选项 - >当前数据库并向下滚动到功能区和工具栏选项,在功能区名称下选择新创建的功能区。当您关闭选项时,您将收到一条警告,您必须关闭并打开数据库才能使更改生效。
当你这样做时,你将无法再在后台看到选项,除了最近的数据库列表之外,你也看不到多少。查看上面的XML,您可以看到所有内容都设置为false。
我认为最简单的方法是打开USysRibbons表并更改此行:
<button idMso="ApplicationOptionsDialog" visible="false"/>
到
<button idMso="ApplicationOptionsDialog" visible="true"/>
再次打开和关闭,然后从“选项”下的“功能区名称”中删除功能区。打开和关闭,你或多或少地回到你开始的地方。
答案 1 :(得分:1)
要添加到Fionnuala的优秀答案,Access 2013在FILE菜单中有不同的选项,因此需要稍微修改XML。完全按照答案但用这个替换XML,这会隐藏选项菜单并离开打印和退出。
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<!-- Ribbon XML -->
</ribbon>
<backstage>
<button idMso="ApplicationOptionsDialog" visible="false"/>
</backstage>
</customUI>
答案 2 :(得分:1)
全部
我在很多网站上花费了很多时间...
这里的XML将:
此代码几乎完全类似于MS Access 2013中的标准“ HOME”标签。
您可以使用它来真正锁定您的应用……结合一些好的代码以在启动时禁用特殊键等。
在这里:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="true">
<!-- Ribbon XML -->
<tabs>
<tab id="dbCustomHome" label="HOME" visible="true">
<group id="dbViews" label="Views">
<control idMso="ViewsSwitchToDefaultView" size="large" label="View" enabled="true"/>
</group>
<group id="dbClipboard" label="Clipboard">
<control idMso="PasteSpecial" size="large" label="Paste" enabled="true"/>
<control idMso="Cut" label="Cut" enabled="true"/>
<control idMso="Copy" label="Copy" enabled="true"/>
<control idMso="FormatPainter" label="Format Painter" enabled="true"/>
</group>
<group id="dbSortFilter" label="Sort and Filter">
<control idMso="FiltersMenu" size="large" label="Filter" enabled="true"/>
<control idMso="SortUp" label="Ascending" enabled="true"/>
<control idMso="SortDown" label="Descending" enabled="true"/>
<control idMso="SortRemoveAllSorts" label="Remove Sort" enabled="true"/>
<control idMso="SortSelectionMenu" label="Selection" enabled="true"/>
<control idMso="FilterAdvancedMenu" label="Advanced" enabled="true"/>
<control idMso="FilterToggleFilter" label="Toggle Filter" enabled="true"/>
</group>
<group id="dbRecords" label="Records">
<control idMso="DataRefreshAll" size="large" label="Refresh All" enabled="true"/>
<control idMso="GoToNewRecord" label="New" enabled="true"/>
<control idMso="RecordsSaveRecord" label="Save" enabled="true"/>
<control idMso="Delete" label="Delete" enabled="true"/>
<control idMso="RecordsTotals" label="Totals" enabled="true"/>
<control idMso="SpellingAccess" label="Spelling" enabled="true"/>
<control idMso="RecordsMoreRecordsMenu" label="More" enabled="true"/>
</group>
<group id="dbFind" label="Find">
<control idMso="FindDialog" size="large" label="Find" enabled="true"/>
<control idMso="ReplaceDialog" label="Replace" enabled="true"/>
<control idMso="GoToMenuAccess" label="Go To" enabled="true"/>
<control idMso="SelectMenuAccess" label="Select" enabled="true"/>
</group>
<group id="dbTextFormat" label="Text Formatting" centerVertically="true">
<box id="TopBx">
<control idMso="Font" enabled="true"/>
<control idMso="FontSize" enabled="true"/>
<buttonGroup id="buttonGroup_TopRow">
<control idMso="Bullets" enabled="true"/>
<control idMso="Numbering" enabled="true"/>
<separator id="separator1" />
<control idMso="IndentIncrease" enabled="true"/>
<control idMso="IndentDecrease" enabled="true"/>
<separator id="separator2" />
<control idMso="AlignLeftToRightMenu" enabled="true"/>
</buttonGroup>
</box>
<box id="BottomBx">
<buttonGroup id="buttonGroup_BottomRow">
<control idMso="Bold" enabled="true"/>
<control idMso="Italic" enabled="true"/>
<control idMso="Underline" enabled="true"/>
<separator id="separator3" />
<control idMso="FontColorPicker" enabled="true"/>
<control idMso="TextHighlightColorPicker" enabled="true"/>
<control idMso="FontFillBackColorPicker" enabled="true"/>
<separator id="separator4" />
<control idMso="AlignLeft" enabled="true"/>
<control idMso="AlignCenter" enabled="true"/>
<control idMso="AlignRight" enabled="true"/>
<separator id="separator5" />
<control idMso="DatasheetGridlinesMenu" enabled="true"/>
<separator id="separator6" />
<control idMso="FontAlternateFillBackColorPicker" enabled="true"/>
</buttonGroup>
</box>
</group>
</tab>
</tabs>
</ribbon>
<backstage>
<tab idMso="TabSave" visible="false" > </tab>
<button idMso="ApplicationOptionsDialog" visible="false"/>
<button idMso="FileCloseDatabase" visible="false"/>
</backstage>
</customUI>
答案 3 :(得分:0)
由于使用[快速访问工具栏]-[自定义]后门选项仍然存在后门,因此另一个与Fionnuala相同的简单解决方案可能是:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<commands>
<command idMso="ApplicationOptionsDialog" enabled="false"/>
</commands>