
Ribbon dinamico para access 2010
Publicado por Diego Martinez (1 intervención) el 17/12/2013 16:10:02
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 boton pero no logro que esto se haga a través de un blucle automáticamente.
Este es el codigo que estoy usando
Luego en el evento del btn login
Agaradezco cualquier ayuda que me puedan dar, el problema que me surge es el error 5 en tiempo de ejecucion y se "frena" el select case en el case"btn0"
Por si se lo preguntan todos los botones tienen un id = btn0, btn1, btn2.... y su id en la tabla que tiene un campo si/no para habilitarlo segun el usuario arranca en 1 y hay 100 botones preparados.
la idea es hacer esto para tenerlo como base para todos mis futuros proyectos.
si necesitan la base de datos se las puedo enviar ya que por el momento solo tiene el sistema de loguin
gracias
He logrado desactivar y ocultar los botones desde un evento Clic de un boton pero no logro que esto se haga a través de un blucle automáticamente.
Este es el codigo que estoy usando
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
' 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
Agaradezco cualquier ayuda que me puedan dar, el problema que me surge es el error 5 en tiempo de ejecucion y se "frena" el select case en el case"btn0"
Por si se lo preguntan todos los botones tienen un id = btn0, btn1, btn2.... y su id en la tabla que tiene un campo si/no para habilitarlo segun el usuario arranca en 1 y hay 100 botones preparados.
la idea es hacer esto para tenerlo como base para todos mis futuros proyectos.
si necesitan la base de datos se las puedo enviar ya que por el momento solo tiene el sistema de loguin
gracias
Valora esta pregunta


0