ACC2000: Only One Menu Bar Can Be Visible at a Time Using CodeID: Q207157
|
When you create a new menu bar in Visual Basic for Applications code, or when you set the Visible property of an existing menu bar to True, the current menu bar is no longer visible. However, if you create a new menu bar or view an existing menu bar by clicking the View menu, pointing to Toolbars, and then clicking Customize, both the current menu bar and the new one remain visible.
Microsoft provides programming examples for illustration only, without warranty
either expressed or implied, including, but not limited to, the implied warranties of
merchantability and/or fitness for a particular purpose. This article assumes that you
are familiar with the programming language being demonstrated and the tools used to
create and debug procedures. Microsoft support professionals can help explain the functionality
of a particular procedure, but they will not modify these examples to provide added
functionality or construct procedures to meet your specific needs. If you have limited
programming experience, you may want to contact a Microsoft Certified Solution Provider
or the Microsoft fee-based consulting line at (800) 936-5200. For more information about
Microsoft Certified Solution Providers, please see the following page on the World Wide Web:
http://www.microsoft.com/mcsp/For more information about the support options available from Microsoft, please see the following page on the World Wide Web:
http://www.microsoft.com/support/supportnet/overview/overview.aspYou can set the Visible property of any existing menu bar in code to make it visible, but this method only allows you to display one menu bar at a time. When you set the Visible property of any menu bar to True, Microsoft Access automatically sets the Visible property of all other menu bars to False.
CommandBars("MenuBar2").Visible = True
If MenuBar2 is displayed on your screen, the following line of code
automatically sets the Visible property of MenuBar2 to False:
CommandBars("MenuBar1").Visible = True
In order to display more than one menu bar at a time, you must create your
new menu bar or view an existing one through the user interface as follows:
Public strCurrentMenuName As String
'*******************************************************************
' This procedure creates a new menu bar and makes it visible.
'*******************************************************************
Sub CreateMenuBar(strNewMenuName as String)
Dim cmdNewMenu As CommandBar
' Set Global strCurrentMenuName to existing menu for use later when
' toggling.
strCurrentMenuName = CommandBars.ActiveMenuBar.Name
' Create a new menu bar.
Set cmdNewMenu = Application.CommandBars.Add(strNewMenuName, _
msoBarFloating, True, False)
With cmdNewMenu
' Set Protection property to no protection so users can customize
' it.
.Protection = msoBarNoProtection
' Show new menu.
.Visible = True
End With
End Sub
CreateMenuBar "ExampleMenu"
When you minimize the Visual Basic Editor you that see a new floating menu bar is displayed on the screen, and that the original menu bar is hidden from view.Run-time error '5':
Invalid procedure call or argument
CommandBars(strCurrentMenuName).Visible = True
Note that the original menu bar reappears, and your custom menu bar
disappears.For more information about menu bars, click Microsoft Access Help on the
Help menu, type "Read about toolbars, menu bars, and shortcut menus" in the Office Assistant or the Answer Wizard,
and then click Search to view the topic.
For more information about the Protection property, in the Visual Basic Editor, click
Microsoft Visual Basic Help on the Help menu, type "protection property" in
the Office Assistant or the Answer Wizard, and then click Search to
view the topic.
Additional query words: Cmdbar menubar commandbar display show hide invisible disappear appear
Keywords : kbui PgmObj
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: July 6, 1999