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