Create a custom toolbar in Access

The first thing to do is to create the toolbar as a CommandBar object:

'-- Create a command bar with three buttons
Set myBar = CommandBars.Add(Name:="Customer", _
            Position:=msoBarTop, _
            Temporary:=True)
With myBar
  .Controls.Add Type:=msoControlButton, Id:=539
  .Controls.Add Type:=msoControlButton, Id:=4
  .Controls.Add Type:=msoControlButton, Id:=644
.Visible = True
End With

The Temporary property is set True to define this as a temporary toolbar. It will disappear when the database is closed. This property defaults to False and any toolbar that you create will persist and reappear the next time that you open the database. If you do use a permanent toolbar then you must add error-handling code to ensure that you do not try to create it a second time.

A command bar can hold several different types of control and the Type parameter here declares that we are adding three command buttons. The Id parameter defines the icon that will appear on these buttons and the action that the button will perform if we do not override it later. Set an Id of 1 if you want a button with no icon.

Define the buttons

Each button on the toolbar is a member of the Controls collection of the CommandBar. This fragment of code defines the third button on the toolbar:

'-- Define the Delete button
With myBar.Controls(3)
  .Style = msoButtonIconAndCaption
  .Caption = "Delete Customer"
  .OnAction = "=DeleteCustomer()"
  .TooltipText = "Delete all records of this customer"
End With

The Style property is set to show an icon and some text. You can also choose msoButtonIcon or msoButtonCaption to show an icon or some text alone.

The OnAction property defines the action that must be performed when this button is clicked. In this example it calls a DeleteCustomer method of the form.

Show and hide a toolbar

Use the Visible and Enabled properties of the CommandBar object to control whether or not the user can see and operate the buttons on the toolbar.

Removing a toolbar

This code in the form's Unload event removes the toolbar from the collection of CommandBars. There is always the possibility that the user might have closed the toolbar manually so we have to work around this possible error.

'-- Simple-minded error handling in case the user has
'-- already deleted this toolbar.

On Error Resume Next
CommandBars("Customer").Delete