Access 2013 (32 bit) Backstage Windows 7 (64 bit)

I have an row in USysRibbons that basically hides the backstage except for the print tab.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <backstage>
   <!-- Info -->
   <tab idMso ="TabInfo" visible="false"/>
   <!-- New -->
   <tab idMso ="TabOfficeStart" visible="false"/>
   <!-- Open -->
   <tab idMso="TabRecent" visible="false"/>
   <!-- Save -->
   <button idMso="FileSave" visible="false"/>
   <!-- Save As -->
   <tab idMso="TabSave" visible="false"/>
   <!-- Print -->
   <tab idMso ="TabPrint" visible="true"/>
   <!-- Close -->
   <button idMso="FileCloseDatabase" visible="false"/>
   <!-- Account -->
   <tab idMso="TabHelp" visible="false"/>
   <!-- Options -->
   <button idMso="ApplicationOptionsDialog" visible="false"/>
  </backstage>
</customUI>

I also have a report that is opened in preview mode as a dialog report from VBA. The report has it's own custom ribbon that only contains the close preview button. The report also has a short cut menu that only allows close. In other words this report can never be printed per my client's specification. My problem is that when the user clicks the File tab on the report's custom ribbon, the Print feature is exposed. How to I disable the backstage Print or make the backstage print invisible only when this report is open in preview mode?
rmkAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
rmkConnect With a Mentor Author Commented:
The solution is to reference a different onLoad for each ribbon.

For rbnForm I used:
<customUI ... onLoad="FormRibbonOnLoad" >

For rbnBackStage I used
<customUI ... onLoad="BackStageRibbonOnLoad" >

In VBA I used:
Public grbnForm As IRibbonUI
Public grbnBackStage As IRibbonUI

Public Sub FormRibbonOnLoad(ribbon As IRibbonUI)
    Set grbnForm = ribbon
End Sub

Public Sub BackStageRibbonOnLoad(ribbon As IRibbonUI)
    Set grbnBackStage = ribbon
End Sub

Then I was able to used the Invalidate method of the appropriate global grbn variable as required in code.
0
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
I believe you also have to include the Ribbon commands to disable the Backstage view in the Report's Custom Ribbon.

See Gunter's article here:

http://www.accessribbon.de/en/index.php?Access_-_Ribbons:Ribbon_XML___Controls:Backstage_View

Essentially, you would include XML like this in your Ribbon code:

<backstage>
<button idMso="FileSave" visible="false"/>
<button idMso="SaveObjectAs" visible="false"/>
etc etc
</backstage>
0
 
rmkAuthor Commented:
I'm not sure I understand your comment. That's exactly what I have in my backstage xml in my rbnBackStage row in USysRibbons. I have another row for rbnForm. As far as I know you cannot mix the 2 in 1 row of U.SysRibbons
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
Have you tried adding the <backstage> sections to your custom Report ribbon?

I've never had the need to completely remove the Backstage stuff ...
0
 
rmkAuthor Commented:
Like I stated earlier, I don't think you can add backstage sections to custom report ribbon.
0
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
Can you post a sample database with your ribbon stuff in it?
0
All Courses

From novice to tech pro — start learning today.