¿Existe alguna manera para que Access despliegue datos según la contraseña y los permisos?

¿Existe alguna manera para que access me despliegue datos según contraseña y permisos? Es decir, capturo contraseña y solo me despliegue información de captura para la región norte, pacifico, centro, sur, etc según corresponda el permiso
Respuesta
1
Lo que te entendí es esto que tu quieres ocultar procesos conforme a las claves y derechos que tenga un usuario pues debes empezar con este código, primero leelo y luego lo modificas para que funcione en tu bd al final de cada código marque las lines de explicación con: ///<<< para ke las identifiques
Private Sub CmdCambio_Click()
Dim Dbs As Database
Dim Rst As Recordset
Dim StrSql As String
Dim Ans As Long
If Not IsNull(TxtUsuario) And Not IsNull(TxtPassword) Then
Set Dbs = CurrentDb
StrSql = "SELECT * FROM QOPE0101 WHERE [Clave]='" & TxtUsuario & "' and [Contrasena]='" & Encripta(TxtPassword) & "'"
Set Rst = Dbs.OpenRecordset(StrSql)
If Rst.RecordCount = 0 Then
TxtPassword.SetFocus
Cambia = 0
Else
Cambia = 1
SGUser = TxtUsuario
SGTipo = Rst![Tipo]
End If
Rst.Close
Set Dbs = Nothing
If (TxtUsuario = "" Or IsNull(TxtUsuario)) Or Cambia = 0 Then
MsgBox "La clave de usuario o contraseña tecleadas no existen, verifique. " & _
"Si está seguro que ambas son correctas y vuelve a ver este mensaje, oprima el botón " & _
"'Cancelar' de la forma y llame de inmediato a génieLogi", vbInformation, "Precaución"
If TxtUsuario.Enabled = False Then
TxtUsuario.Enabled = True
TxtUsuario.Locked = False
TxtUsuario.SetFocus
End If
Else
TxtUsuario.Enabled = False
TxtConfirma.Enabled = True
TxtConfirma.Locked = False
TxtPassword = ""
TxtPassword.SetFocus
End If
If Cambia = 1 Then
Ans = MsgBox("¿Está seguro de cambiar su contraseña de acceso?", vbYesNo, "Pregunta")
If Ans = vbYes Then
CmdOk.ControlTipText = "Cambio de Contraseña"
MsgBox "Deberá teclear primero su nueva contraseña en el campo 'Contraseña' y nuevamente sobre el campo 'Confirmar contraseña'. Después oprima 'Ok' en la forma de acceso", vbOKOnly, "Instrucciones"
Else
DoCmd.Close
End If
End If
Else
MsgBox "La clave de usuario o contraseña tecleadas no existen, verifique. " & _
"Si está seguro que ambas son correctas y vuelve a ver este mensaje, oprima el botón " & _
"'Cancelar' de la forma y llame de inmediato a génieLogi", vbInformation, "Precaución"
End If
End Sub
///<<<Esta parte es donde mandas a llamar al cuadro de dialogo para pedir contraseña
Private Sub CmdOk_Click()
Dim Dbs As Database
Dim Rst As Recordset
Dim StrSql As String
If Cambia = 1 Then
If Not StrComp(TxtPassword, TxtConfirma) = 0 Or IsNull(StrComp(TxtPassword, TxtConfirma)) Then
MsgBox "La clave de usuario o contraseña tecleadas no existen, verifique. " & _
"Si está seguro que ambas son correctas y vuelve a ver este mensaje, oprima el botón " & _
"'Cancelar' de la forma y llame de inmediato a génieLogi", vbInformation, "Precaución"
TxtPassword = ""
TxtConfirma = ""
TxtPassword.SetFocus
Else
If TxtPassword = "" Or TxtConfirma = "" Then
TxtPassword.SetFocus
Else
Set Dbs = CurrentDb
StrSql = "SELECT * FROM QOPE0101 WHERE [Clave]='" & TxtUsuario & "'"
Set Rst = Dbs.OpenRecordset(StrSql)
Rst.Edit
Rst![Contrasena] = Encripta(TxtPassword)
Rst.Update
Rst. Close
Set Dbs = Nothing
DoCmd.Close
End If
End If
Else
Set Dbs = CurrentDb
If (IsNull(TxtUsuario) Or IsNull(TxtPassword)) Then
TxtUsuario = ""
TxtPassword = ""
End If
StrSql = "SELECT * FROM QOPE0101 WHERE [Clave]='" & TxtUsuario & "'"
Set Rst = Dbs.OpenRecordset(StrSql)
If Rst.RecordCount = 0 Then
MsgBox "La clave de usuario o contraseña tecleadas no existen, verifique. " & _
"Si está seguro que ambas son correctas y vuelve a ver este mensaje, oprima el botón " & _
"'Cancelar' de la forma y llame de inmediato a génieLogi", vbInformation, "Precaución"
Rst.Close
Set Dbs = Nothing
TxtUsuario.Enabled = True
TxtPassword.Enabled = True
TxtPassword = ""
TxtConfirma.Enabled = False
TxtConfirma = ""
TxtUsuario.SetFocus
ElseIf Rst![Contrasena] <> Encripta(TxtPassword) Then
MsgBox "La clave de usuario o contraseña tecleadas no existen, verifique. " & _
"Si está seguro que ambas son correctas y vuelve a ver este mensaje, oprima el botón " & _
"'Cancelar' de la forma y llame de inmediato a génieLogi", vbInformation, "Precaución"
Rst.Close
Set Dbs = Nothing
TxtUsuario.Enabled = True
TxtPassword.Enabled = True
TxtPassword = ""
TxtConfirma.Enabled = False
TxtConfirma = ""
TxtUsuario.SetFocus
Else
SGUser = TxtUsuario
SGTipo = Rst![Tipo]
Rst.Close
DoCmd.Close
End If
Set Dbs = Nothing
End IfacToolbarNo
End Sub
///<<<Esta es la parte donde se presiona el boton de ok para verificar
Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
DoCmd.OpenForm "FENT0101", , , , , acDialog
If SGTipo = "Administrador" Then
CmdEventos.Visible = True
CmdOpera.Visible = True
CmdPedidos.Visible = True
CmdCapital.Visible = True
CmdOrdenes.Visible = True
CmdQuit.Left = 4140
Else
CmdEventos.Visible = False
CmdOpera.Visible = False
CmdPedidos.Visible = False
CmdCapital.Visible = False
CmdOrdenes.Visible = False
CmdQuit.Left = 1400
End If
End Sub
///<<<Ya luego en tu formulario principal en el evento al cargar debes utilizar este codigo con los votones del mismo nombre para ocultar los botones
Creo que eso es todo, esto valdría un 5

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas