Gestión de Barras de Menú en Microsoft Access

En este sencillo ejemplo se muestra como administrar las visualización de Barras de Menú (CommandBar) en Microsoft Access desde un formulario que carga las barras definidas por el usuario y permite visualizarlas o ocultarlas según se quiera. Probado en Microsoft Access 2000 y 2003

Esta función es interesante en aplicaciones que tienen muchas barras de Menú y que es necesario ajustar las que se quieren visualizar a las necesidades de cada usuario.

Descargar Ejemplo

Código Fuente del formulario:

Option Compare Database
    Dim matcb(50) As String
    Dim cb As CommandBar
    Dim ind As Integer
Option Explicit
Private Sub cmdCancelar_Click()
    DoCmd.Close acForm, Me.Name
End Sub
Private Sub cmdRefrescar_Click()
    VisualizarBarrasDeMenu
End Sub
Private Sub Form_Load()
    VisualizarBarrasDeMenu
End Sub
Private Sub cmdAplicar_Click()
    On Error GoTo ErrorSub
    For ind = 0 To Lista.ListCount
        If matcb(ind) <> "" Then
            Set cb = Application.CommandBars(matcb(ind))
            cb.Visible = Lista.Selected(ind)
        End If
    Next
    MsgBox "Cambios aplicados, ahora la aplicación se cerrará. Vuelvala a abrir para actualizar las barras de Menú ", vbInformation, "Barras de Menú"
    DoCmd.Quit
    Exit Sub
ErrorSub:
    MsgBox Err.Description
End Sub
Public Sub VisualizarBarrasDeMenu()
    On Error GoTo ErrorSub
    Lista.Clear
    Erase matcb
    ind = 0
    For Each cb In Application.CommandBars
        If cb.BuiltIn = False Then ' Barras creadas por el usuario
            If cb.Type = msoBarTypeMenuBar Or cb.Type = msoBarTypeNormal Then ' Se descartan los menús contextutales
                Debug.Print cb.Type & " | " & cb.BuiltIn & " | " & cb.Name
                Lista.AddItem (cb.Name)
                Lista.Selected(ind) = cb.Visible
                matcb(ind) = cb.Name
                ind = ind + 1
            End If
        End If
    Next
    Set cb = Nothing
    Exit Sub
ErrorSub:
    MsgBox Err.Description
End Sub

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies