Acceder a access con usuarios definidos a un formulario especifico según su grupo.
Bueno hace unos meses estoy desarrollando una aplicación en Access 2007 muy buena que me facilita cada vez mas mi trabajo, ya estoy en la etapa final y como cierre quiero parametrizar el acceso de los usuarios según sus funciones al sistema, con Access 2003 esto hera muy facil un asistente te permitia crear los usuarios y sus respectivos permisos, como esta version no tiene esto he quedado desarmado para continuar con mi proyecto; en si lo que nesecito es que el usuario xxxxx se identifique en un formalario con su respectiva contraseña y al autenticarlo este sea enviado a un formulario especifico para el grupo al cual pertenece. Encontre un codigo muy bueno que hace parte de lo que necesito pero solo con dos grupos no se como crearle una tercera categoria el codigo es el siguiente:
Option Compare Database
Option Explicit
Dim NumIntentos As Integer
Private Sub CmdEntrar_Click()
Dim auxContraseña As String
'Comprobamos que hay datos en las cajas de texto
If Nz(Me.TxtLogin.Value, "") = "" Then
MsgBox "Seleccione un nombre de usuario de la lista para acceder", vbInformation, "ATENCION"
Me.TxtLogin.SetFocus
ElseIf Nz(Me.TxtPassword.Value, "") = "" Then
MsgBox "Introduzca la contraseña del usuario seleccionado", vbInformation, "ATENCION"
Me.TxtPassword.SetFocus
Else
If Nz(DLookup("Clave", "Usuarios", "Id_usuario=" & Me![TxtLogin]), "") <> "" Then
auxContraseña = DLookup("Clave", "Usuarios", "Id_usuario=" & Me![TxtLogin])
End If
If auxContraseña <> Me.TxtPassword.Value Then
If NumIntentos = 10 Then
NumIntentos = NumIntentos - 1
MsgBox "La contraseña introducida es incorrecta" & vbCrLf & _
"Le quedan " & NumIntentos & " intentos" & vbCrLf & vbCrLf & _
"Por favor, introduzca otra", vbExclamation, "INTRODUCCIÓN INCORRECTA"
Me.TxtPassword.Value = ""
Me.TxtPassword.SetFocus
Else
MsgBox "Ha superado el numero de intentos", vbCritical, "ADIOS..."
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
Else
If DLookup("Id_acceso", "Usuarios", "Id_usuario=" & Me![TxtLogin]) = 1 Then
MsgBox "Ha entrado como usuario administrador", vbInformation, "BIENVENIDO AL APLICATIVO"
Call Admin
Else
MsgBox "Ha entrado como usuario final", vbInformation, "BIENVENIDO AL APLICATIVO"
Call Usuar
End If
'DoCmd.OpenForm stDocName, , , stLinkCriteria 'Abrimos el formulario correspondiente
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
End If
End Sub
Function Admin()
On Error GoTo Admin_Err
DoCmd.OpenForm "FormProcesos", acNormal, "", "", , acNormal
Admin_Exit:
Exit Function
Admin_Err:
MsgBox Error$
Resume Admin_Exit
End Function
Function Usuar()
On Error GoTo Usuar_Err
DoCmd.OpenForm "FormUsuarios", acNormal, "", "", , acNormal
Usuar_Exit:
Exit Function
Usuar_Err:
MsgBox Error$
Resume Usuar_Exit
End Function
Los grupos Serian:
Admins abriria el formulario FormParametros
Precontractual abriria el formulario FormProcesos
Facturadores abriria el formulario FormContratos
La intencion es que el grupo sea el que determine el formulario que los usuarios pertenecientes a este podran visualizar.
Gracias, le agradeceria al experto que me pueda ayudar solo me falta esto para colocar la base de datos en pruba general.