Custom Toolbars in an Access Database
Your Access database will look more impressive and be easier for
the users if you add some custom toolbars to the forms. The easy way
to do this is to right-click on one of the existing toolbars and select
but it's safer to write some VBA code and let the application create
the toolbars for you. Microsoft Access then gives you complete control of
the custom toolbars. You can create and destroy them and determine
whether or not they are visible to a particular user.
This example shows a simple Customer form which has its own
toolbar. This toolbar has the familar Windows look and users will
immediately recognise it and know what to do with it. This
familiarity will also give the user more confidence in the
quality of the database you've developed - it's not just
some random program, it looks and feels like a proper
Windows program.
References for a custom toolbar
The VBA code to create this toolbar is in the Load event of
the Customer form. Before writing any code you must ensure that
you have a reference to the right library. The toolbar and its
buttons are instances of
and
objects and these are not part of the core of Microsoft
Access. You must tell this Access application where it
can find them.
Open a code editing window and select
from the
menu.
The contents of this list are in alphabetical order and
will vary with the software already installed on your PC.
You need to scroll down the list until you find the large
block of 'Microsoft' software. Search this carefully and
tick the entry for the Microsoft Office Object Library.
This example shows an entry for Access 97 in Office 8.0.
Note that this reference will have to be updated if you
try to run this code on a machine running a different
version of Microsoft Office. If you copy the database to
a machine running Office XP then you will be able to open
the database with Access XP but you will get an error
message saying that it cannot find the Office 8.0
library. The solution is to open the code window on the
new PC, clear the Office 8.0 tickbox and tick the box
for the version of Office running on that PC.
Create a custom toolbar
The first thing to do is to create the toolbar as a CommandBar object:
SetmyBar = 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 property is set True to define
this as a temporary toolbar. This means that it will disappear when
the database closes and this is the safer option. The property defaults
to False which means that any toolbar you create will persist and it
will reappear the next time that you open the database.
In itself this is not a problem but 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
parameter here declares that we are
adding three command buttons. The 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.
The codes are not well-documented in the Access Help system. Follow this
link for a list of the most useful
ID codes
.
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:
With myBar.Controls(3)
.Style = msoButtonIconAndCaption
.Caption = "Delete Customer"
.OnAction = "=DeleteCustomer()"
.TooltipText = "Delete this customer"
End With
The property is set to show an
icon and some text. You can also choose
or
to show an icon or some text alone.
The property defines the
action that must be performed when this button is clicked. In
this example it calls a
method of the form.
Show and hide a toolbar
Use the and
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
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.
On Error Resume Next
CommandBars("Customer").Delete
|