Ayuda Ribbon dinámico Access 2010

Estoy desarrollando una aplicaccion en access 2010 con un ribbon personalizado, ya logre este paso pero lo que necesito ahora es hacer que según el usuario que se loguee filtre los botones del ribbon para impedir el acceso a ciertas partes del sistema.

He logrado desactivar y ocultar los botones desde un evento Clic de un boon pero no logro que esto se haga a través de un blucle automáticamente.

les dejo el código

Sub GetVisible(control As IRibbonControl, ByRef visible)
' evento al cargar el ribbon
    Select Case control.id
        Case "btn0"
             visible = bolVisible
        Case "btn1"
             visible = bolVisible
        Case "btn2"
             visible = bolVisible
......
        Case Else
            visible = bolVisible
    End Select

Luego en el evento del btn login

' Funcion que filtra el Ribbon segun el usuario registrado
Public Function fnFiltrarRibbon()
    Dim k As Integer
    Dim i As Integer
    Dim varStrBtnName As String
    Dim varAcceso As Boolean
    ' Cuento el numero de botones habilitados
    k = DCount("btnName", "sysCtaRibbonAccess")
    ' Genero un bucle para pasar boton por boton activando o desactivando
    For i = 1 To k
        varStrBtnName = "btn" & i - 1 'Genero una variable con el nombre del boton
        varAcceso = DLookup("Acceso", "sysCtaRibbonAccess", "idBtn = " & i)
        If varAcceso = "False" Then
           bolVisible = False
        ElseIf varAcceso = "True" Then
           bolVisible = True
        End If
        Call bucleAsignacion(varStrBtnName) ' Llamo a la funcion que pasa por los botones
    Next i
End Function
Sub bucleAsignacion(varStrBtnName)
        Select Case varStrBtnName
        Case "btn0"
            gobjRibbon.InvalidateControl "btn0"
        Case "btn1"
            gobjRibbon.InvalidateControl "btn1"
        Case "btn2"
            gobjRibbon.InvalidateControl "btn2"
.....
        Case Else
            visible = True
    End Select
End Sub

Ademas en algunas pc estoy teniendo el error 5 en tiempo de ejecución y el código se detiene en case "btn0" del bloque GetVisible

Desde ya muchas gracias

Añade tu respuesta

Haz clic para o