Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Permisos a usuarios con tolbar..ayuda

Estas en el tema de Permisos a usuarios con tolbar..ayuda en el foro de Visual Basic clásico en Foros del Web. Hola, tengo la necesidad de cambiar la forma de permisos de usuarios de mi aplicacion; actualmente, en mi BD, esta conformada por los siguientes campo: ...
  #1 (permalink)  
Antiguo 17/03/2006, 18:19
Avatar de rouuss  
Fecha de Ingreso: abril-2005
Ubicación: Mexico DF
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
Información Permisos a usuarios con tolbar..ayuda

Hola, tengo la necesidad de cambiar la forma de permisos de usuarios de mi aplicacion;
actualmente, en mi BD, esta conformada por los siguientes campo:

Nombre | pswd | Nivel |NomNivel |Acceso | Puerta

Lupis | 1234 |Facturas|Nivel1 |S |si/no 'ejemplo

' Donde Nivel es el nombre del menu. y Acceso si tiene S = Si tiene permiso, N= No tiene; Puerta-si/No, si
esta en sesion.

Debido a que uso 10 Niveles, me duplica el campo de Nombre y contraseña; y esto me genera datos redundantes en mi BD.
mi codigo en visualbasic es el siguiente.

'Una vez que identifico si existe el usuario y la contraseña es correcta, asigna los permisos.
Private Sub AsignaAccesos()
Dim vValor As Variant
rcUsuario.MoveFirst
Do While Not rcUsuario.EOF
For Each varcontrols In MenuPrincipal.Controls
If rcUsuario.EOF Then Exit Do
vValor = varcontrols.Name
If varcontrols.Name = rcUsuario!NomNivel Then
varcontrols.Enabled = IIf(rcUsuario!Acceso = "S", True, False)
Select Case varcontrols.Name
Case Is = "Nivel1"
MenuPrincipal.opToolbarmenu.Buttons(1).Enabled = varcontrols.Enabled
Case Is = "Nivel2"
MenuPrincipal.opToolbarmenu.Buttons(2).Enabled = varcontrols.Enabled
Case Is = "Nivel2"
MenuPrincipal.opToolbarmenu.Buttons(3).Enabled = varcontrols.Enabled
Case Is = "Nivel3"
MenuPrincipal.opToolbarmenu.Buttons(4).Enabled = varcontrols.Enabled
Case Is = "Nivel4"
MenuPrincipal.opToolbarmenu.Buttons(6).Enabled = varcontrols.Enabled
CataProductos.BarProducto.Enabled = varcontrols.Enabled
Case Is = "Nivel5"
MenuPrincipal.opToolbarmenu.Buttons(7).Enabled = varcontrols.Enabled
Case Is = "Nivel6"
MenuPrincipal.opToolbarmenu.Buttons(8).Enabled = varcontrols.Enabled
CatalogoComedores.BarComedor.Enabled = varcontrols.Enabled
Case Is = "Nivel7"
MenuPrincipal.opToolbarmenu.Buttons(10).Enabled = varcontrols.Enabled
Case Is = "Nivel8"
CatalogoClientes.BarCliente.Enabled = varcontrols.Enabled
Case Is = "Nivel9"
MenuPrincipal.opToolbarmenu.Buttons(7).Enabled = varcontrols.Enabled
Case Is = "Nivel10"
MenuPrincipal.opToolbarmenu.Buttons(11).Enabled = varcontrols.Enabled

End Select

End If

Next
rcUsuario.MoveNext 'Como hay 10 niveles, y n+1 usuarios, pasa a verificar el permiso del sig usuario
Loop

rcUsuario.Close

SQL = " Update Usuarios Set"
SQL = SQL + " Puerta = True " 'marca la puerta activa, que esta dentro del sistema
SQL = SQL + " Where usuarios.nombre = '" & TxtNombre.Text & "' "
Set rcUsuario = New ADODB.Recordset
rcUsuario.Open SQL, cnBDDecfruver, adOpenStatic, adLockOptimistic

Unload Me
End Sub

---------ahora deseo y he cambiado la estructura de la BD--------
Tabla1 = Usuario tiene campos: Nombre | Pswd | Idnivel| puerta
Tabla2= Permiso tiene campos: IdNivel| nivel1 |nivel2 |...|nivel(n)

Genero el siguiente codigo

'Una vez que identifico si existe el usuario y la contraseña es correcta, asigna los permisos.
Private Sub AsignaAccesos()
Dim vValor As Variant
rcUsuario.MoveFirst
For Each varcontrols In MenuPrincipal.Controls
If rcUsuario.EOF Then Exit Do
vValor = varcontrols.Name
If varcontrols.Name = rcUsuario!Nivel Then
varcontrols.Enabled = IIf(rcUsuario!Permiso1 = "S", True, False)
Select Case varcontrols.Name
Case Is = "Nivel1"
MenuPrincipal.opToolbarmenu.Buttons(1).Enabled = varcontrols.Enabled
'asi hasta Hasta nivel10*********************
End If

rcUsuario.Close

SQL = " Update Usuarios Set"
SQL = SQL + " Puerta = True " 'marca la puerta activa, que el usuario esta dentro del sistema
SQL = SQL + " Where usuarios.nombre = '" & TxtNombre.Text & "' "
Set rcUsuario = New ADODB.Recordset
rcUsuario.Open SQL, cnBDDecfruver, adOpenStatic, adLockOptimistic

Unload Me
End Sub

Pero no corre, realize una forma mas sensilla sin el arreglo varcontrols, y me manda un error
que dice que el menu es modal, y no lo puedo manupilar como nomodal.
Debido a que uso un menu modal, pero uso el tolbar, para acceso a los modulos mas comunes.


Espero alguien me pueda ayudar..de antemano gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:27.