Article ID: 159692
Article Last Modified on 1/19/2007
175066 ACC97: Microsoft Access 97 Sample Forms Available in Download Center
'****************************************************************
' This procedure creates a new toolbar.
'****************************************************************
Sub AddNewCB()
Dim CBar As CommandBar, CBarCtl As CommandBarControl
On Error GoTo AddNewCB_Err
' Create a new floating toolbar and make it visible.
Set CBar = CommandBars.Add(Name:="Sample Toolbar", Position:= _
msoBarFloating)
CBar.Visible = True
' Create a button with text on the bar and set some properties.
Set CBarCtl = CBar.Controls.Add(Type:=msoControlButton)
With CBarCtl
.Caption = "Button"
.Style = msoButtonCaption
.TooltipText = "Display Message Box"
.OnAction = "=MsgBox(""You pressed a toolbar button!"")"
End With
' Create a button with an image on the bar and set some
' properties.
Set CBarCtl = CBar.Controls.Add(Type:=msoControlButton)
With CBarCtl
.FaceId = 1000
.Caption = "Toggle Button"
.TooltipText = "Toggle First Button"
.OnAction = "=ToggleButton()"
End With
' Create a combo box control on the bar and set some properties.
Set CBarCtl = CBar.Controls.Add(msoControlComboBox)
With CBarCtl
.Caption = "Drop Down"
.Width = 100
.AddItem "Create Button", 1
.AddItem "Remove Button", 2
.DropDownWidth = 100
.OnAction = "=AddRemoveButton()"
End With
Exit Sub
AddNewCB_Err:
MsgBox "Error " & Err.Number & vbCr & Err.Description
Exit Sub
End Sub
'****************************************************************
' This procedure is called from a button on the toolbar.
' It toggles the Visible property of another button on the bar.
'****************************************************************
Function ToggleButton()
Dim CBButton As CommandBarControl
On Error GoTo ToggleButton_Err
Set CBButton = CommandBars("Sample Toolbar").Controls(1)
CBButton.Visible = Not CBButton.Visible
Exit Function
ToggleButton_Err:
MsgBox "Error " & Err.Number & vbCr & Err.Description
Exit Function
End Function
'****************************************************************
'This procedure is called from a combo box on the toolbar
'It adds a button to the bar or removes it
'****************************************************************
Function AddRemoveButton()
Dim CBar As CommandBar, CBCombo As CommandBarComboBox
Dim CBNewButton As CommandBarButton
On Error GoTo AddRemoveButton_Err
Set CBar = CommandBars("Sample Toolbar")
Set CBCombo = CBar.Controls(3)
Select Case CBCombo.ListIndex
'If Create Button is selected, create a button on the bar
Case 1
Set CBNewButton = CBar.Controls.Add(Type:=msoControlButton)
With CBNewButton
.Caption = "New Button"
.Style = msoButtonCaption
.BeginGroup = True
.Tag = "New Button"
.OnAction = "=MsgBox(""This is a new button!"")"
End With
' Find and remove the new button if it exists.
Case 2
Set CBNewButton = CBar.FindControl(Tag:="New Button")
CBNewButton.Delete
End Select
Exit Function
AddRemoveButton_Err:
' If the button does not exist.
If Err.Number = 91 Then
MsgBox "Cannot remove button that does not exist!"
Exit Function
Else
MsgBox "Error " & Err.Number & vbCr & Err.Description
Exit Function
End If
End Function
AddNewCB
****************************************************************
' This procedure creates a new menu bar.
'****************************************************************
Sub AddNewMB()
Dim MBar As CommandBar, MBarCtl As CommandBarControl
Dim MBarPopup As CommandBarPopup, MBarSubCtl as CommandBarControl
On Error GoTo AddNewMB_Err
' Create a new menu bar and dock it on the left.
Set MBar = CommandBars.Add(Name:="Sample Menu Bar", Position:= _
msoBarLeft, MenuBar:=True, Temporary:=False)
' Make the menu bar visible.
MBar.Visible = True
' Prevent users from undocking the menu bar.
MBar.Protection = msoBarNoMove
' Create a popup control on the bar and set its caption.
Set MBarCtl = MBar.Controls.Add(Type:=msoControlPopup)
MBarCtl.Caption = "Displa&y"
' Create 2 controls on the Display popup and set some properties.
Set MBarSubCtl = MBarCtl.Controls.Add(Type:=msoControlButton)
With MBarSubCtl
.Style = msoButtonIconAndCaption
.Caption = "E&nable ClickMe"
.FaceId = 59
.OnAction = "=ToggleClickMe()"
.Parameter = 1
.BeginGroup = True
End With
Set MBarSubCtl = MBarCtl.Controls.Add(Type:=msoControlButton)
With MBarSubCtl
.Style = msoButtonIconAndCaption
.Caption = "Di&sable ClickMe"
.FaceId = 276
.OnAction = "=ToggleClickMe()"
.Parameter = 2
.BeginGroup = True
End With
' Add another control to the menu bar.
Set MBarCtl = MBar.Controls.Add(Type:=msoControlButton)
With MBarCtl
.BeginGroup = True
.Caption = "&ClickMe"
.Style = msoButtonCaption
.OnAction = "=MsgBox(""You clicked ClickMe"")"
End With
' Add a control to make this menu bar invisible and bring back
' the system menu bar.
Set MBarCtl = MBar.Controls.Add(Type:=msoControlButton)
With MBarCtl
.BeginGroup = True
.Caption = "&Show Northwind Menu Bar"
.Style = msoButtonCaption
.OnAction = "=SampleMenuDisable()"
End With
Exit Sub
AddNewMB_Err:
MsgBox "Error " & Err.Number & vbCr & Err.Description
Exit Sub
End Sub
'****************************************************************
' This procedure uses the Parameter property of a command bar
' control to execute a different action depending on which item
' you click on a popup menu.
'****************************************************************
Function ToggleClickMe()
Dim MyMenu As CommandBar
Dim MBarClickMe As CommandBarControl
On Error GoTo ToggleClickMe_Err
Set MyMenu = CommandBars("Sample Menu Bar")
Set MBarClickMe = MyMenu.Controls(2)
' The ActionControl property of command bars returns the control
' whose OnAction property is running this procedure.
With CommandBars.ActionControl
Select Case .Parameter
Case 1
MBarClickMe.Enabled = True
Case 2
MBarClickMe.Enabled = False
End Select
End With
Exit Function
ToggleClickMe_Err:
MsgBox "Error " & Err.Number & vbCr & Err.Description
Exit Function
End Function
'****************************************************************
' This function restores the original menu bar. Because there can
' only be one system menu bar, you must hide the sample menu bar
' when you want to bring back the previous system menu bar.
'****************************************************************
Function SampleMenuDisable()
Application.CommandBars("Sample Menu Bar").Visible = False
Application.CommandBars("NorthwindCustomMenuBar").Visible = True
End Function
AddNewMB
172300 ACC97: Command Bar Wizard Available in Download Center
Keywords: kbhowto kbprogramming kbusage KB159692