¿Código en access para acceder a un determinado formulario según el tipo de usuario?

Favor nuevamente su ayuda:

Tengo un sistema creado en access, el mismo me permite validar SU ACCESO entre el nombre_usuario y su clave_usuario de la tabla USUARIOS una vez ingresado; lo que requiero es un código que me permita según sea el tipo de acceso "Id_acceso" (Administrador o Usuario) que forma parte de los campos de la tabla USUARIOS, ir al formulario correspondiente; es decir si la persona tiene registrado el Id_accesso "Administrador" una vez validado el usuario y su clave me la envíe al formulario "ADMINISTRADOR"; en cambio si tiene registrado el Id_accesso "Usuario" una vez validado su usuario y clave me la envíe al formulario "USUARIO".

Adjunto el código que tengo hasta el momento; favor su ayuda y de antemano mi agradecimiento:

Option Compare Database

Option Explicit

Private Sub CmdAceptar_Click()

On Error GoTo err:

'variable local para nombre y clave de usuario

Dim NOMUSU As String

Dim CVEUSU As String

'Asignar el valor de los controles a las variables locales

NOMUSU = UCase(Nz(Me.TxtNombre_Usuario.Value, ""))

CVEUSU = UCase(Nz(Me.TxtCLAVE_USUARIO.Value, ""))

If IsEmpty(NOMUSU) Or IsEmpty(CVEUSU) Then

MsgBox "Datos Incompletos...", vbOKOnly + vbCritical, "Imposible Ingresar!!"

Else

'Buscar Usuario con los datos ingresados

If ExisteUsuario(NOMUSU, CVEUSU) = True Then

MsgBox "Bienvenido al Sistema", vbOKOnly + vbInformation, "Acceso Exitoso"

DoCmd.Close 'Cerrar ventana de Acceso

'Código para entrar al sistema,, estén pendiente con las PRÓXIMAS ENTREGAS!

Else

NumIntento = NumIntento + 1

If NumIntento <= 2 Then

MsgBox "Usuario o Clave incorrecta", vbCritical + vbOKOnly, "Acceso Denegado" Me.TxtNombre_Usuario.Value = ""

Me.TxtCLAVE_USUARIO.Value = ""

Me.TxtNombre_Usuario.SetFocus

Else

MsgBox "Demasiados Intentos, el Sistema se cerrara!", vbCritical + vbOKOnly, "Fallas de Acceso"

DoCmd.Quit

End If

End If

End If

Exit Sub

err:

MsgBox err.Description

End Sub

Public Function ExisteUsuario(strNomUsuario As String, strCveUsuario As String) As Boolean On Error GoTo us_err
Dim Rst As DAO.Recordset

Dim sql As String

sql = "SELECT * FROM [USUARIOS] US WHERE US.[NOMBRE_USUARIO]='" & strNomUsuario & "' AND US.[CLAVE_USUARIO]='" & strCveUsuario & "'"

Set Rst = CurrentDb.OpenRecordset(sql)
If Rst.BOF And Rst.EOF Then

ExisteUsuario = False

Else

ExisteUsuario = True

'Se Inicializar las variables de Sesión

xNOMBRE_USUARIO = Rst!NOMBRE_USUARIO

xCLAVE_USUARIO = Rst!CLAVE_USUARIO

xNOMBRE = Rst!NOMBRE

xAPELLIDO_PATERNO = Rst!APELLIDO_PATERNO

xAPELLIDO_MATERNO = Rst!APELLIDO_MATERNO

xVENTAS = Rst!VENTAS

xADMINISTRAR = Rst!ADMINISTRAR

xREPORTES = Rst!REPORTES

xCATALOGOS = Rst!CATÁLOGOS

xCONSULTAS = Rst!CONSULTAS

xCANCELAR_VENTA = Rst!CANCELAR_VENTA

xID_ACCESO = Rst!ID_ACCESO

End If

Rst.Close

Set Rst = Nothing

Exit Function

us_err:

MsgBox err.Description

End Function

Atentamente.

César Bustos

ECUADOR

1 respuesta

Respuesta
1

El código que estás utilizando es sumamente complejo. Te recomiendo que eches un vistazo a este ejemplo, que creo que será más claro y fácil para que lo puedas adaptar a tu BD: http://goo.gl/HSVOa

Espero que te sirva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas