Access - error en busqueda con findrecord

 
Vista:

error en busqueda con findrecord

Publicado por Pedrito (20 intervenciones) el 13/05/2009 17:42:51
Hola a todos, necesito ayuda con el FindRecord, este mi problema:
Tengo una tabla con varios registros, la tabla esta compuesta de dos campos. Cuando entro en el formulario, he puesto dos Textbox para introducir los datos. El formulario esta relacionado con una consulta que lleva la tabla. Cuando introduzco los 2 datos que solicito y pulso un botón para ver si existen me da error, este es el codigo que he puesto en el botón:

Private Sub Comando7_Click()

Dim stDocName As String
Dim stLinkCriteria As String

DoCmd.FindRecord Usuario, , True, , True, acAll

If Usuario = Texto3 Then
If Contraseña = Texto5 Then
stDocName = "RULETA"
DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
Else
MsgBox ("Nombre de usuario o contraseña erroneo, vuelva a intentarlo")
End If
Exit_Comando7_Click:
Exit Sub

Err_Comando7_Click:
MsgBox Err.Description
Resume Exit_Comando7_Click

End Sub

Texto3 y Texto5 son los Textbox que he puesto en el formulario y contiene los datos introducidos. Usuario y Contraseña me dice que está nulo. Que es lo que hago mal?

Un saludo

Pedrito
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:error en busqueda con findrecord

Publicado por Enrique (1299 intervenciones) el 13/05/2009 20:20:10
Hola Pedrito:
Prueba con este Evento que además comprueba que se corresponda el usuario introducido con su correspondiente contraseña. Es necesario dejar los campos Texto3 y Texto5 "Independientes" sin conectar a la tabla. Solo tienes que sustituir TUTABLA en el OpenRecordset por el nombre real de la misma. Entiendo que los nombres de los dos campos de la tabla son Usuario y Contraseña, ambos de tipo texto. Por último, asegurate que tengas marcada la Referencia: Microsoft DAO 3.6 Object Library.

Private Sub Comando7_Click()
Dim rst As DAO.Recordset, Contador As Integer
If IsNull(Texto3) Or Texto3 = "" Then Texto3.SetFocus: Exit Sub
If IsNull(Texto5) Or Texto5 = "" Then Texto5.SetFocus: Exit Sub
Set rst = CurrentDb.OpenRecordset("Select Usuario, Contraseña From TUTABLA Where Usuario Like '" & Texto3 & "'")
If rst.EOF Then
MsgBox "Usuario inexistente.", vbInformation, " Error"
Texto3 = ""
Texto3.SetFocus: Exit Sub
End If
'Aquí controlamos que se corresponda el Usuario con su Contraseña:
If rst!Contraseña = Texto5 And rst!Usuario = Texto3 Then
rst.Close: Set rst = Nothing
DoCmd.OpenForm "Ruleta"
Else
MsgBox "Contraseña incorrecta.", vbInformation, " Error"
Contador = Contador + 1
If Contador = 3 Then
MsgBox "No está autorizado a abrir el Form Ruleta", vbCritical, " Tres intentos fallidos."
Docmd.Close
Else
Texto5 = ""
Texto5.SetFocus: Exit Sub
End If
End If
End Sub

Como verás, primero se comprueba si el usuario tecleado existe en la tabla y si es así, después compara este con su contraseña.

Suerte y saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error en busqueda con findrecord

Publicado por Pedrito (20 intervenciones) el 14/05/2009 12:36:11
Muchas gracias por tu ayuda, me funciona perfectamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar