Login en frm

Hola, espero contar con tu valiosa ayuda, tengo un formulario de usuario y contraseña que valida en una tabla de access.
en el botón aceptar pose el sig. Código:
Private Sub btnAceptar_Click()
Dim Base As Database
Dim Pass As Recordset
Set Base = CurrentDb
Set Pass = Base.OpenRecordset("select * from Pass where Usuario = '" & usuario & "' and password = '" & contraseña & "'")
If Pass.RecordCount = 0 Then
MsgBox "Contraseña incorrecta"
Exit Sub
End If
'Fijate que da igual que la contraseña este mal, o el usuario no exista. De este modo no das pista al posible intruso.
'Si la ejecucion llega a este punto, es que el usuario y la contraseña son validos. Ahora solo queda Abrir el formulario adecuado a cada usuario.
DoCmd.OpenForm Pass!Formulario
DoCmd.Close acForm, "Inicio"
End Sub
Mi tabla llamada "Pass" tiene los siguientes campos: Usuario, password y formulario
Mi frm tiene los cuadros de texto: usuario y contraseña
Cuando ejecuto la búsqueda, me dice: se ha producido el error 13 en tiempo de ejecución, No cionciden los tipos.
¿Por qué?

1 respuesta

Respuesta
1
El error se debe a que estas tratando lo dos campos como texto y según el error uno de los dos no es de tipo texto, puede ser que alguno sea numérico.
En caso de que sea así modifica por esto:
Caso texto
"select * from Pass where Usuario = '" & usuario & "'" & " and password = '" & contraseña & "'"
Caso Numero
"select * from Pass where Usuario = '" & usuario & "' and password = " & contraseña
Gracias por tu pronta respuesta.
Aun me marca el mismo error (no cionciden los tipos), utilice el caso Texto porque mis 2 campos de la tabla son tipo Texto (50)
Puse este código como me lo indicaste:
Set Pass = Base.OpenRecordset("select * from Pass where Usuario = '" & usuario & "'" & " and password = '" & contraseña & "'")
Saludos,,
Enviame una copia de tu BD para echarle un ojo
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas