¿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
1 Respuesta
Respuesta de loarias
1
1
loarias, Soy bueno para el rippeo de dvd's, puedo pasarlos a divx o a mpg...
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