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 Customize 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.

[Microsoft Access database form with custom toolbar]

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 CommandBar and CommandBarButton 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 References... from the Tools menu.

[Access References dialog]

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:

'-- Create a command bar with three buttons
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 Temporary 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 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.

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:

'-- Define the Delete button
With myBar.Controls(3)
  .Style = msoButtonIconAndCaption
  .Caption = "Delete Customer"
  .OnAction = "=DeleteCustomer()"
  .TooltipText = "Delete 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

MS Access technical tips

Visual FoxPro technical tips

General Tips

 

More tips from Alvechurch Data

Custom Toolbars

Your Access database will look more impressive if you add custom toolbars.

Read More

Trust Center in Access 2007

Trust Center in Access 2007

Using the Trust Center in Access 2007

Read More

Access 2002 and Office XP

Notes on the launch of Microsoft Access 2002 and Office XP

Read More

Frequent, automatic backups

How to create backups automatically in FoxPro or Access using the Windows Scripting Host

Read More

Visual Basic equivalent of FoxPro file name function

VBA equivalents of FoxPro functions to manipulate names of files and folders

Read More