Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda textbox se pierde cuando doy esc

Estas en el tema de Ayuda textbox se pierde cuando doy esc en el foro de Visual Basic clásico en Foros del Web. hola buen dia a todos. tengo un pequeño problemita que no he logrado solucionar en mi siguiente codigo: Código: Private Sub txtdni_LostFocus() If Len(txtdni.Text) >= ...
  #1 (permalink)  
Antiguo 05/12/2009, 09:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 15 años, 7 meses
Puntos: 0
Ayuda textbox se pierde cuando doy esc

hola buen dia a todos. tengo un pequeño problemita que no he logrado solucionar en mi siguiente codigo:

Código:
Private Sub txtdni_LostFocus()
If Len(txtdni.Text) >= 8 Then
Else
MsgBox "Ingrese un DNI Correcto", vbInformation, ""
txtdni.SetFocus
Exit Sub
End If
    'txtdni.Visible = False
Dim dni As ADODB.Recordset
Set dni = New ADODB.Recordset
dni.Open "select * from clientes where dni='" & txtdni.Text & "'", db, adOpenDynamic, adLockBatchOptimistic
If dni.EOF Then
'MsgBox "DNI No Existe, Puede Usarlo", vbCritical, "Error"
Else
MsgBox "DNI Ya Existe PorFavor Ingresar Otro", vbCritical, "Error"
txtdni.SetFocus
Exit Sub
End If
End Sub
es un textbox el cual me funciona muy bien, y todo el problema esta que cuando estoy dentro de ese textbox y doy ESC (scape) el textbox se pierde y me sale el mensaje de ingrese un DNI correcto no se que falta o que esta mal en ese codigo, espero su ayuda gracias ;)
  #2 (permalink)  
Antiguo 05/12/2009, 09:46
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Ayuda textbox se pierde cuando doy esc

No sé como el hecho de pulsar escape te puede afectar aquí. Pulsar escape no lleva al evento lostfocus.
Lo que tienes que revisar son los eventos key del textbox, que es donde debes tener el problema.
Tampoco sé por qué pulsas escape. Si solo quieres evitar esa tecla puedes hacer esto:

Código :
Ver original
  1. Private Sub txtdni_KeyPress(KeyAscii As Integer)
  2.   If KeyAscii = 27 Then KeyAscii = 0
  3. End Sub
Que se dé bien.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 05/12/2009, 10:05
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda textbox se pierde cuando doy esc

Cita:
Iniciado por pkj Ver Mensaje
No sé como el hecho de pulsar escape te puede afectar aquí. Pulsar escape no lleva al evento lostfocus.
Lo que tienes que revisar son los eventos key del textbox, que es donde debes tener el problema.
Tampoco sé por qué pulsas escape. Si solo quieres evitar esa tecla puedes hacer esto:

Código :
Ver original
  1. Private Sub txtdni_KeyPress(KeyAscii As Integer)
  2.   If KeyAscii = 27 Then KeyAscii = 0
  3. End Sub
Que se dé bien.
bueno gracias por tu respuesta, pero no me sirvio eso aun asi me sige saliendo el error, el problema de porque apreto esc, es porque estoy validando todo para que no hayga errores, ni causa problemas al usuario.

espero su ayuda gracias ;)
  #4 (permalink)  
Antiguo 05/12/2009, 10:35
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Ayuda textbox se pierde cuando doy esc

Me parece que lo que tu dices que pulsas es el tabulador para ir pasando de un textbox a otro, lo que si que genera un evento lostfocus.
No entiendo de bases de datos, de modo que no sé como saber si el dni ha sido encontrado, pero creo que si deslias un poco el código igual encuentras el fallo.
Quedaría algo así:
Código :
Ver original
  1. Private Sub txtdni_LostFocus()
  2.   If Len(txtdni.Text) < 8 Then
  3.     MsgBox "Ingrese un DNI Correcto", vbInformation, ""
  4.     txtdni.SetFocus
  5.   Else
  6.     Dim dni As ADODB.Recordset
  7.     Set dni = New ADODB.Recordset
  8.     dni.Open "select * from clientes where dni='" & txtdni.Text & "'", db, adOpenDynamic, adLockBatchOptimistic
  9.     If Not(dni.EOF) Then
  10.       MsgBox "DNI Ya Existe PorFavor Ingresar Otro", vbCritical, "Error"
  11.       txtdni.SetFocus
  12.     End If
  13.   End If
  14. End Sub
Quizá el dni nunca llega con 8 caracteres o más.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.