You are here: Home > Access - Ribbons > Menus / Toolbars > Toolbars
Toolbars
As described in Menus / Toolbars there is no editor for menus / toolbars in Access 2007. This means that there is no editor for context menus either.
You can create and maintain context menus using VBA and the CommandBars.
Bug?: Context Menu Not Visible In Sub Form (Description and Solution)
Sample for 2 context menus.
Function(s) to be copied to a standard module:
You have to make sure that functions creating context menus are executed during start of the database, e.g. using the autoexec macro.
Option Compare Database Option Explicit Public Function CreateCMenu() On Error Resume Next CommandBars("MyContext").Delete Dim cmb As CommandBar Set cmb = CommandBars.Add("MyContext", _ msoBarPopup, False, False) With cmb .Controls.Add msoControlButton, _ 21, , , True ' Cut .Controls.Add msoControlButton, _ 19, , , True ' Copy .Controls.Add msoControlButton, _ 22, , , True ' Paste End With End Function Public Function CreateCMenu1() On Error Resume Next CommandBars("MyContext1").Delete Dim cmb As CommandBar Dim cmbBtn1 As CommandBarButton Dim cmbBtn2 As CommandBarButton Dim cmbBtn3 As CommandBarButton Set cmb = CommandBars.Add("MyContext1", _ msoBarPopup, False, False) With cmb Set cmbBtn1 = .Controls.Add(msoControlButton, _ , , , True) With cmbBtn1 .Caption = "My Button 1" .OnAction = "=fncOnActionBtn1()" End With Set cmbBtn2 = .Controls.Add(msoControlButton, _ , , , True) With cmbBtn2 .Caption = "My Button 2" .OnAction = "=fncOnActionBtn2()" End With Set cmbBtn3 = .Controls.Add(msoControlButton, _ , , , True) With cmbBtn3 .Caption = "My Button 3" .OnAction = "=fncOnActionBtn3()" .BeginGroup = True .FaceId = 59 End With End With End Function Public Function fncOnActionBtn1() MsgBox "Button 1", vbInformation End Function Public Function fncOnActionBtn2() MsgBox "Button 2", vbInformation End Function Public Function fncOnActionBtn3() MsgBox "Button 3", vbInformation End Function
You can find this sample in Sample DB 3
Further Links see section Commandbars.