Ayuda con código
Publicado por dani (10 intervenciones) el 03/07/2008 11:04:12
Por favor necesito ayuda con el siguiente código:
Private Sub Aceptar_Click()
Dim n As Integer
Dim intentos As Integer
On Error GoTo TratoError
If IsNull(Form_Acceso.Usuario) Or Form_Acceso.Usuario = "" Then Form_Acceso.Usuario.SetFocus: Exit Sub
If IsNull(Form_Acceso.Password) Or Form_Acceso.Password = "" Then Form_Acceso.Password.SetFocus: Exit Sub
intentos = 0
If (Usuario = Form_Acceso.Usuario) And (Password = Form_Acceso.Password) Then
DoCmd.OpenForm "Form_PanelControl", acNormal, , , acFormReadOnly, acWindowNormal
Else
MsgBox "Usuario o contraseña incorrectos.", vbInformation, " Error"
intentos = intentos + 1
If intentos = 3 Then
DoCmd.Close acForm, "Acceso"
MsgBox "No está autorizado a utilizar esta aplicación.", vbCritical, " Tres intentos fallidos"
Application.Quit
Else
Form_Acceso.Password = ""
Form_Acceso.Password.SetFocus: Exit Sub
End If
End If
TratoError:
MsgBox "Error: " & Err.Description
End Sub
La idea es que cuando abran la base de datos, se abre el formulario Acceso, donde deben escribir el usuario y su correspondiente contraseña (estos dos campos del formulario acceso son independientes). La comparación de los datos pedidos en el formulario se hace con una tabla oculta llamada passwd, donde estan introducidos todos los usuarios y sus respectivas claves. Si los usuarios y claves coinciden se abre el formulario panel de control y si no coinciden muestra un mensaje de clave incorrecta. Al 3 intento que no coincidan se cierra la aplicación.
Pienso que el código está mas o menos correcto, le he dado mil vueltas y no veo que puede estar mal. Gracias de nuevo por anticipado.
Private Sub Aceptar_Click()
Dim n As Integer
Dim intentos As Integer
On Error GoTo TratoError
If IsNull(Form_Acceso.Usuario) Or Form_Acceso.Usuario = "" Then Form_Acceso.Usuario.SetFocus: Exit Sub
If IsNull(Form_Acceso.Password) Or Form_Acceso.Password = "" Then Form_Acceso.Password.SetFocus: Exit Sub
intentos = 0
If (Usuario = Form_Acceso.Usuario) And (Password = Form_Acceso.Password) Then
DoCmd.OpenForm "Form_PanelControl", acNormal, , , acFormReadOnly, acWindowNormal
Else
MsgBox "Usuario o contraseña incorrectos.", vbInformation, " Error"
intentos = intentos + 1
If intentos = 3 Then
DoCmd.Close acForm, "Acceso"
MsgBox "No está autorizado a utilizar esta aplicación.", vbCritical, " Tres intentos fallidos"
Application.Quit
Else
Form_Acceso.Password = ""
Form_Acceso.Password.SetFocus: Exit Sub
End If
End If
TratoError:
MsgBox "Error: " & Err.Description
End Sub
La idea es que cuando abran la base de datos, se abre el formulario Acceso, donde deben escribir el usuario y su correspondiente contraseña (estos dos campos del formulario acceso son independientes). La comparación de los datos pedidos en el formulario se hace con una tabla oculta llamada passwd, donde estan introducidos todos los usuarios y sus respectivas claves. Si los usuarios y claves coinciden se abre el formulario panel de control y si no coinciden muestra un mensaje de clave incorrecta. Al 3 intento que no coincidan se cierra la aplicación.
Pienso que el código está mas o menos correcto, le he dado mil vueltas y no veo que puede estar mal. Gracias de nuevo por anticipado.
Valora esta pregunta


0