Clave de acceso en formulario access

Tengo un formulario de access denominaco PANTALLA PRINCIPAL, de este se accede mediante dos botones a dos formularios distintos: DEPARTAMENTO COMERCIAL o bien DEPARTAMENTO ADMINISTRATIVO.

Cuando se accede al formulario del DEPARTAMENTO COMERCIAL existen varios botones: DIRECTOR COMERCIAL, JEFE EQUIPO, JEFE VENTAS, COMERCIALES.

Al pulsar en cada uno de ellos se debe ir a un formulario personal, pero se debe introducir una PASSWORD, el problema es que, en el formulario de destino he incluido un procedimiento para que pida la PASSWORD, la pide perfectamente, pero sea CORRECTA o INCORRECTA me entra igual al formulario, la única diferencia es que cuando es incorrecta me aparece un aviso de "Password incorrecta"

¿Qué estoy haciendo mal?

Sospecho que es alguna parte del script que pongo en visual basic que esta mal.

1 Respuesta

Respuesta
1

Creo que tienes mal planteado el lugar donde colocas el código que pide el password. Deberías ponerlo en el código del botón, de tal forma que si el password es correcto, te abra el formulario de destino, y si es incorrecto muestre el aviso.

Si quieres, ponme el código/códigos que tienes, y los nombres de los botones y formularios, y te digo cómo sería.

A ver si me se explicar, y disculpame, en el formulario DEPARTAMENTO COMERCIAL HAY CUATRO BOTONES,:

DIRECTOR COMERCIAL

JEFE VENTAS

JEFES EQUIPO

COMERCIALES

Yo lo que hacia es en el botón habilitar una macro para que me actualizase los registros antes y después abriera directamente el formulario de cada uno de ellos.

En el formulario de cada uno de ellos, en las RPOPIEDADES, en el evento AL ABRIR colocaba el CÓDIGO:

Private Sub Form_Open(Cancel As Integer)
Dim PassOk As String
Dim PassTyped As String
PassOk = "agente007"
PassTyped = InputBox("CLAVE DE ACCESO", "Introduce la clave requerida para acceder a orientación asistencia", "")
If PassTyped <> PassOk Then
Call MsgBox("Password incorrecto", 48, "Atención")
Exit Sub
DoCmd.OpenForm "PANTALLA PRINCIPAL"
Else
DoCmd.OpenForm "ACCESO COMERCIALES"
End If
End Sub

Supongo que si, que el error va por ahí, supongo que esta rutina hay que asignarla al botón y no al formulario, la pregunta será:

¿Como puedo hacer que el botón, antes de la rutina, ejecute las consultas para actualizar los registros?

Muchísimas gracias

Viendo el código, te doy dos opciones:

1ª/ Dejar el código que tienes así:

Si este código lo tienes en el formulario ACCESO COMERCIALES, quedaría así

Private Sub Form_Open(Cancel As Integer)
Dim PassOk As String
Dim PassTyped As String
PassOk = "agente007"
PassTyped = InputBox("CLAVE DE ACCESO", "Introduce la clave requerida para acceder a orientación asistencia", "")
If PassTyped <> PassOk Then
Call MsgBox("Password incorrecto", 48, "Atención")
Cancel=True
End If

DoCmd.Close, acForm "PANTALLA PRINCIPAL"
End Sub

Además, en la macro del botón que lo abre (COMERCIALES), le quitas la parte que te cierra el formulario principal.

2ª/ Programar los botones así, (te pongo solo el de COMERCIALES):

Private Sub COMERCIALES_Click()

Dim PassOk As String
Dim PassTyped As String
PassOk = "agente007"
PassTyped = InputBox("CLAVE DE ACCESO", "Introduce la clave requerida para acceder a orientación asistencia", "")
If PassTyped <> PassOk Then
Call MsgBox("Password incorrecto", 48, "Atención")
Else

DoCmd.OpenForm "ACCESO COMERCIALES"
DoCmd.Close, acForm "PANTALLA PRINCIPAL"

End If

End Sub

Lo de la consulta de actualización, si tienes las consultas creadas, pon después del Else esto:

DoCmd.SetWarnnings False

DoCmd.OpenQuery "Nombre de la consulta de actualización"

DoCmd.SetWarnnings True

Si tienes varias consultas, pon tantos DoCmd. OpenQuery como necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas