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

Limitante segun tipo de usuarios

Estas en el tema de Limitante segun tipo de usuarios en el foro de Visual Basic clásico en Foros del Web. Hola a todos, estoy con un proyecto en donde tengo un login (user y pass) y un form principal, este sistema funciona con una DB ...
  #1 (permalink)  
Antiguo 27/09/2011, 14:30
Avatar de gasuton  
Fecha de Ingreso: octubre-2010
Ubicación: Abandonware
Mensajes: 132
Antigüedad: 13 años, 6 meses
Puntos: 2
Pregunta Limitante segun tipo de usuarios

Hola a todos, estoy con un proyecto en donde tengo un login (user y pass) y un form principal, este sistema funciona con una DB access2000.

Les comento mi dilema: Puedo acceder al sistema a la perfeccion y trebajar en el, en tema aqui esta en que ahora tengo que limitar el acceso a ciertas funciones del sistema, segun el departamento del usuario, por lo que en mi db en la tabla de usuarios tengo una columna DEFAULTDEPTID (en donde almaceno el ID del departamento al que pertenece el usuario), la idea es que todos aquellos usuarios del departamento 4 no puedan ver ciertas funciones.

Por lo que en mi form principal a la hora de cargar agrege lo siguiente (espero este bien mi codigo):

Código:
If strDept = "4" Then
   repconta(0).Enabled = False
   repadmin(1).Enabled = False
   Contadores.Enabled = False
   Administrativos.Enabled = False
End If
La idea es que en strDept se guarde el id del departamento al que pertenece el usuario, esta es una variable global que tengo definida en un modulo

Código:
Public strDept As String
Mi idea es que cuando el usuario ingrese al sistema, este guarde el dato (en mi variable global strDept), de a que departamento pertenece y por ende si pertenece al departamento 4, cuando cargue mi form principal, este me bloquee los botones y funciones de menu

les dejo el codigo de mi boton ok del form de login para que lo puedan ver

Código:
Private Sub cmdOK_Click()
Dim mensaje As String

Me.usuarios.Recordset.MoveFirst
Me.usuarios.Recordset.Find "NAME = '" & txtUser.Text & "'"
If Me.usuarios.Recordset.EOF Then
    mensaje = MsgBox("El Nombre de Usuario no es Correcto!", vbExclamation, "Atencion")
txtUser.SetFocus
SendKeys "{home}+{end}"

ElseIf usuarios.Recordset!mverifypass = txtPass.Text Then
    mensaje = MsgBox("¡Bienvenido!", vbInformation, "RptACS")
strUsuario = Trim(txtUser.Text)
Unload Me
VisorRPT.Show
Else
mensaje = MsgBox("La clave no es correcta", 0 + 16, "Atencion")
txtPass.SetFocus
SendKeys "{Home}+{End}"
End If
  
End Sub
  #2 (permalink)  
Antiguo 30/09/2011, 09:01
Avatar de davidcr  
Fecha de Ingreso: septiembre-2004
Ubicación: Cartago Costa Rica
Mensajes: 95
Antigüedad: 19 años, 6 meses
Puntos: 7
Respuesta: Limitante segun tipo de usuarios

Me parece bien, no es complicado simplemente cargas en strDept el Departamento al que pertenece el usuario, se carga a una variable global y luego en base a eso deshabilitas ciertos controles, el codigo lo veo bien y la logica tambien..

¿Cual es tu duda.. en especifico si la hay?
  #3 (permalink)  
Antiguo 30/09/2011, 13:55
Avatar de gasuton  
Fecha de Ingreso: octubre-2010
Ubicación: Abandonware
Mensajes: 132
Antigüedad: 13 años, 6 meses
Puntos: 2
Sonrisa Respuesta: Limitante segun tipo de usuarios

Cita:
Iniciado por davidcr Ver Mensaje
Me parece bien, no es complicado simplemente cargas en strDept el Departamento al que pertenece el usuario, se carga a una variable global y luego en base a eso deshabilitas ciertos controles, el codigo lo veo bien y la logica tambien..

¿Cual es tu duda.. en especifico si la hay?
mi duda es como puedo hacer para verificar a que departamento pertenece el usuario y por ende grabarlo en mi strDept.

Acualmente estoy aciendo unas pruebas directa con el nombre de usuario

Este es un extracto del codigo del boton ok de login
Código:
        If txtUser.Text = "angel" Then
        strDept = Trim(4)
        End If
El tema es que con ese codigo tengo que agregar cada usuario en el codigo tanto en mayusculas y minusculas como combinado.

Espero me puedas ayudar.

Saludos.
  #4 (permalink)  
Antiguo 30/09/2011, 15:08
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Limitante segun tipo de usuarios

El recordset "usuarios.Recordset" ya trae todos los campos si encuentra un usuario, solo debes asignar el departamento a la variable:

Código vb:
Ver original
  1. strDEPARTAMENTO_ID = Usuarios.Recordset!DEFAULTDEPTID

Esto lo pones antes de llamar al FORM principal ("VisorRPT") :

Código vb:
Ver original
  1. '...
  2. '...
  3. '...
  4.   SendKeys "{home}+{end}"
  5.  
  6.    ElseIf usuarios.Recordset!mverifypass = txtPass.Text Then
  7.       mensaje = MsgBox("¡Bienvenido!", vbInformation, "RptACS")
  8.  
  9.       strDEPARTAMENTO_ID = Usuarios.Recordset!DEFAULTDEPTID
  10.       strUsuario = Trim(txtUser.Text)
  11.  
  12.       Unload Me
  13.       VisorRPT.Show
  14.    Else
  15.       mensaje = MsgBox("La clave no es correcta", 0 + 16, "Atencion")
  16.       txtPass.SetFocus
  17.       SendKeys "{Home}+{End}"
  18. End If
  #5 (permalink)  
Antiguo 30/09/2011, 18:02
Avatar de gasuton  
Fecha de Ingreso: octubre-2010
Ubicación: Abandonware
Mensajes: 132
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Limitante segun tipo de usuarios

Lokoman sos un groso con lo que me pusiste lo hice funcionar enseguida, apenas si modifique una cosa

Código:
strDept = Trim(usuarios.Recordset!DEFAULTDEPTID)
No sabia que lo podia declarar de esa manera Muchisimas gracias por la ayuda.
  #6 (permalink)  
Antiguo 03/10/2011, 11:11
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Limitante segun tipo de usuarios


Etiquetas: access, tabla, tipo, usuarios, vb
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 03:34.