Hola, estoy haclendo un sistema pequeño y quiero validar a travez de enter. Les dejo el codigo:
Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = "13" Then
If (Text3.Text) <> "" Then
If IsNumeric(Text3.Text) Then
Set R = BD.OpenRecordset("usuario", dbOpenTable)
R.Index = "us"
R.Seek "=", (Text3.Text)
If Not R.NoMatch Then
Text4.Text = R("pass")
'Text4.Enabled = True
'Command2.Enabled = True
Else
MsgBox ("Lo siento, No existe")
Text3.Text = ""
End If
End If
End If
End If
End Sub
El codigo deberia hacer que al presionar el enter despues de escribir el usuario mostrara el pass en otro text (text4 en este caso) pero no me toma el evento KeyPress, alguien ve algun error?
Si alguien lo quiere probar les dejo el codigo modificado ya que en el anterior tengo cargada una base de datos en el form.
Saludos y gracias
Fallo1: KeyAscii -> Integer ; "13" -> String
'Fallo2': No puedo comprobarlo, pero creo que seria mejor envez de IsNumeric() que utilizaras Val()
Solución:
Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If (Text3.Text) <> "" Then
If Val(Text3.Text) > 0 Then 'Teniendo en cuenta que el Text3 no permite numeros negativos...
Set R = BD.OpenRecordset("usuario", dbOpenTable)
R.Index = "us"
R.Seek "=", Val(Text3.Text)
If Not R.NoMatch Then
Text4.Text = R("pass")
'Text4.Enabled = True
'Command2.Enabled = True
Else
MsgBox ("Lo siento, No existe")
Text3.Text = ""
End If
End If
End If
End If
End Sub
Recuerda trabajar bien con el tipo de variable, cuando sean numero usa Val() ;)
Gracias Karcrack...
El error era que estaba pensando en numeros cuando de verdad necesito una palabra (nombre de usuario "user" en la base de datos). por lo que trataba de comprobar una palabra como numero... Lo que pasa es que primero lo iba a hacer con codigos numericos pero cambie por texto.
Osea:
Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = "13" Then
If (Text3.Text) <> "" Then
'If IsNumeric(Text3.Text) Then Esta comprobacion sobra!
Set R = BD.OpenRecordset("usuario", dbOpenTable)
R.Index = "us"
R.Seek "=", (Text3.Text)
If Not R.NoMatch Then
Text4.Text = R("pass")
'Text4.Enabled = True
'Command2.Enabled = True
Else
MsgBox ("Lo siento, No existe")
Text3.Text = ""
End If
'End If Esto tambien
End If
End If
End Sub
Quitando eso el codigo ya hace lo que quiero, que es evaluar el nombre de usuario y tirar la contraseña asociada a un text para posteriormente hacer una comprobacion con el boton de ingresar...
Por ejemplo el pass queda en text4 por lo que si quiero comparar con text5 en el boton seria:
If (Text4.Text = Text5.Text) Then
Haz esto...
Else
Esto otro
End If
Muchas gracias :D
Cita de: Karcrack en 17 Julio 2009, 00:00 AM
'Fallo2': No puedo comprobarlo, pero creo que seria mejor envez de IsNumeric() que utilizaras Val()
Recuerda trabajar bien con el tipo de variable, cuando sean numero usa Val() ;)
eso no lo entendi..
Cita de: janito24 en 16 Julio 2009, 22:12 PM
Hola, estoy haclendo un sistema pequeño y quiero validar a travez de enter. Les dejo el codigo:
Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = "13" Then
If (Text3.Text) <> "" Then
If IsNumeric(Text3.Text) Then
Set R = BD.OpenRecordset("usuario", dbOpenTable)
R.Index = "us"
R.Seek "=", (Text3.Text)
If Not R.NoMatch Then
Text4.Text = R("pass")
'Text4.Enabled = True
'Command2.Enabled = True
Else
MsgBox ("Lo siento, No existe")
Text3.Text = ""
End If
End If
End If
End If
End Sub
El codigo deberia hacer que al presionar el enter despues de escribir el usuario mostrara el pass en otro text (text4 en este caso) pero no me toma el evento KeyPress, alguien ve algun error?
Si alguien lo quiere probar les dejo el codigo modificado ya que en el anterior tengo cargada una base de datos en el form.
Saludos y gracias
algunas cosas que veo...
1 - si preguntas si es numerico , ni hace falta preguntar si es <> ""
2 - podes validar para que el textbox solo acepte numero y te olvidas de Val() y de la validacion anterior.
3 - usar DAO hoy en dia es como comparar la playstation 3 con la NES.
saludos.
Cita de: seba123neo en 17 Julio 2009, 01:42 AM
algunas cosas que veo...
1 - si preguntas si es numerico , ni hace falta preguntar si es <> ""
Ok gracias lo tendre presente...
Cita de: seba123neo en 17 Julio 2009, 01:42 AM
2 - podes validar para que el textbox solo acepte numero y te olvidas de Val() y de la validacion anterior.
Necesito que acepte letras y numeros :)
Cita de: seba123neo en 17 Julio 2009, 01:42 AM
3 - usar DAO hoy en dia es como comparar la playstation 3 con la NES.
Dejame aprender bien esto y me pongo con ADO que igual me interesa aprenderlo, usar access es como usar atari, pero se me hizo interesante aprender tambien :)
Gracias por los consejos ;)