Duda con formulario access con login y contraseña

En una BD tengo el siguiente código:

Option Compare Database
Private Sub Iniciar_Sesión_Click()
On Error GoTo Err_Iniciar_Sesión_Click
'Esta línea pregunta si ha seleccionado un usuario desde la lista
If IsNull(Usuario) Then
MsgBox "No ha indicado un usuarios desde la lista", vbExclamation, "Iniciar Sesión"
Exit Sub
Else
'Esta línea compara si la contraseña ingresada por el usuario es igual a la que esta almacenada para el usuario en la columna 2 del cuadro de lista.
If Usuario.Column(2) = Contraseña Then
MsgBox "ha iniciado sesión con éxito", vbInformation, "Iniciar Sesión"
' aquí valida si es administrador
If Usuario.Column(3) = 1 Then
MsgBox "Bienvenido Sr. Administrador", vbInformation, "Acceso"
DoCmd.Close acForm, "Acceso"
DoCmd.OpenForm "hola"
End If
'Aquí valida si es susuario.
If Usuario.Column(3) = 2 Then
MsgBox "Bienvenido Sr. Usuario1", vbInformation, "Acceso"
DoCmd.OpenForm "pepito"
End If
'Aquí valida si es susuario.
If Usuario.Column(3) = 3 Then
MsgBox "Bienvenido Sr. Usuario2", vbInformation, "Acceso"
DoCmd.OpenForm "marcos"
End If
'Aquí escribiremos el código para ejecutar la consulta de agregación
Dim Consulta As String
Consulta = "Consulta_Acceso"
'Hacemos esta línea para deshabilitar las notificaciones de sistema
DoCmd.SetWarnings False
DoCmd.OpenQuery Consulta, acViewNormal, acEdit
'Aquí volvemos a habilitar las notificaciones de sistema
DoCmd.SetWarnings True
Else
MsgBox "Contraseña incorrecta", vbExclamation, "Iniciar Sesión"
Exit Sub
End If
End If
Exit_Iniciar_Sesión_Click:
Exit Sub
Err_Iniciar_Sesión_Click:
MsgBox Err.Description
Resume Exit_Iniciar_Sesión_Click
End Sub

El problema es que no soy capaz de hacer para que cuando el usuario y contraseña son correctos se habrá el formulario específico para ese usuario (esto si que lo consigo) y automáticamente el formulario de Acceso (el que pone usuario y contraseña al inicio) se cierre, dejando sólo en la pantalla el formulario específico

1

1 Respuesta

30.075 pts. Desde hace más de 15 años me dedico profesionalmente a...

Pon lo siguiente:

Option Compare Database
Private Sub Iniciar_Sesión_Click()
On Error GoTo Err_Iniciar_Sesión_Click
'Esta línea pregunta si ha seleccionado un usuario desde la lista
If IsNull(Usuario) Then
MsgBox "No ha indicado un usuarios desde la lista", vbExclamation, "Iniciar Sesión"
Exit Sub
Else
'Esta línea compara si la contraseña ingresada por el usuario es igual a la que esta almacenada para el usuario en la columna 2 del cuadro de lista.
If Usuario.Column(2) = Contraseña Then
MsgBox "ha iniciado sesión con éxito", vbInformation, "Iniciar Sesión"
' aquí valida si es administrador
If Usuario.Column(3) = 1 Then
MsgBox "Bienvenido Sr. Administrador", vbInformation, "Acceso"
DoCmd.Close acForm, "Acceso"
DoCmd.OpenForm "hola"
End If
'Aquí valida si es susuario.
If Usuario.Column(3) = 2 Then
MsgBox "Bienvenido Sr. Usuario1", vbInformation, "Acceso"
DoCmd.OpenForm "pepito"
End If
'Aquí valida si es susuario.
If Usuario.Column(3) = 3 Then
MsgBox "Bienvenido Sr. Usuario2", vbInformation, "Acceso"
DoCmd.OpenForm "marcos"
End If
'Aquí escribiremos el código para ejecutar la consulta de agregación
Dim Consulta As String
Consulta = "Consulta_Acceso"
'Hacemos esta línea para deshabilitar las notificaciones de sistema
DoCmd.SetWarnings False
DoCmd.OpenQuery Consulta, acViewNormal, acEdit
'Aquí volvemos a habilitar las notificaciones de sistema
DoCmd.SetWarnings True
'Aqui cerramos el formulario actual
DoCmd.Close Me
Else
MsgBox "Contraseña incorrecta", vbExclamation, "Iniciar Sesión"
Exit Sub
End If
End If
Exit_Iniciar_Sesión_Click:
Exit Sub
Err_Iniciar_Sesión_Click:
MsgBox Err.Description
Resume Exit_Iniciar_Sesión_Click
End Sub

Hola A_Salva,

En primer lugar gracias por la rápida contestación. Yo he tardado en contestar porque ayer tuve un problemita con la conexión de internet.

Tu solución me ha servido de mucho, y eso que, aunque me encanta la informática, con access y en especial con la programación tengo un nivel muy muy bajito.

Si me permites tengo otro problemita:

Tengo un formulario que depende de una tabla.

En esta tabla tengo un campo con la fecha de nacimiento, otro con edad (que lo tengo vacío) y un tercero con fecha actual (que lo tengo vacío porque soy incapaz de que automáticamente me de la fecha actual (creo que es con Fecha(), pero no se hacerlo).

Vale, pues lo que quiero es que en el formulario, y también en la tabla si puede ser, me salga automáticamente la edad exacta en años. ¿es posible, y si es que si ¿cómo lo hago?

Un saludo,

Marcos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas