Access - Como capturar ENTER en KeyPress para un TextBox

 
Vista:

Como capturar ENTER en KeyPress para un TextBox

Publicado por Jorge Danilo Rueda (8 intervenciones) el 24/09/2007 18:13:25
Regrese a trabajar con Access 2003 y me doy cuenta que el control TEXT Unbound en el evento KeyPress no identifica ni se ejecuta con la tecla el ENTER (lo que hace es pasar el foco al siguiente control). En vista de eso estuve indagando más y algunas soluciones son utilizar el evento KeyDown, LostFocus, entre otros porque son varias teclas claves que no disparan el evento KeyPress (Como son Tab, Enter, PgDn, Home, Del, Alt, Esc).

Sin embargo, muchos necesitan realmente identificar el ENTER en el evento KeyPress por la concepción del programada o subprograma dado.

Por lo tanto doy la solución que di a este inconveniente y espero que les sirva cuando lo utilicen.
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por byronlcl (30 intervenciones) el 24/09/2007 18:38:10
En las opciones de access puedes configurar como quieres que se comporte cuando se pulsa la tecla enter.

Y Si se puede identificar cualquier pulsación en cualquier tecla, hay una propiedad de formulario que se llama "Tecla de vista previa" la pones en Si, luego le das al evento del formulario "Al bajar una tecla" y ya puedes manipular las pulsaciones de acuerdo a tus necesidades, puedes incluso anularlas. Pero tienes que conocer del tema o buscar en la ayuda, no es dificil
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por Jorge Danilo Rueda (8 intervenciones) el 24/09/2007 18:39:16
Muchos creen que la solución es simplemente colocar en el evento KEYPRESS:
If (KeyAscii = 13) Then
Como lo explique anteriormente el Enter es una de las teclas que no dispara el evento KeyPress. Pero oh sorpresa, lo puede diapara siempre y cuando se den las condiciones necesarias para hacerlo, y aqui explico como se resuelve este inconveniente:

La idea es que cuando se presione Enter dentro del Text se realice una busqueda. Tambien se cuenta con un Boton Buscar donde se tiene el código de búsqueda. Pero muchos usuarios después de escribir lo que quiere buscar sencillamente presionan Enter y no utilizan el boton Buscar.

1) Hay que cambiar la propiedad Enter Key Behavior del control TEXT y permitir el Salto de Línea.

2) En este momento el evento KeyPress si permite identificar el Enter. Pero debemos evitar que se realice el salto de línea dentro del control.

3) Incluyo el código que utilice:

Private Sub TxtSearch_KeyPress(KeyAscii As Integer)
'Este condicional me permite filtrar todo lo que no sea número o el backspace
'Porque mi control solo debe aceptar Números
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
'Pregunto si se presiono ENTER
If (KeyAscii = 13) Then
'Cambio el Foco al Boton para que el TextBox pueda almacenar los datos ingresados.
CmdBuscar.SetFocus
'Ejecuto el código del Sub CmdBuscar para no repetir el código
CmdBuscar_Click
Else
'Si no es número la idea es colocar Keyascci igual a Cero para que no se haga nada.
KeyAscii = 0
End If
End If
End Sub

Espero que les sea dse utilidad.

JorDan
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por Chea (1015 intervenciones) el 24/09/2007 21:16:33
Me vas a permitir disentir.

Mientras el evento KeyPress devuelve el código Ascii del carácter correspondiente a la tecla que hemos buscado, KeyDown nos devuelve el código que corresponde a la tecla (no al carácter) por lo que es más apropiado. Nos vale para Return, al que correspondería un carácter chr(13) en KeyPress, y también para la Flecha Abajo, o la tecla Fin que no se representan por ningún carácter.

Sería tan sencillo como poner:

Private Sub MIControl_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = VbKeyReturn then
...
endif

End Sub

Saludos
José Bengoechea Ibaceta
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por dagoberto palacios balcazar (1 intervención) el 12/03/2009 21:43:53
Gracias compas por haber metido esta informacion saludos...
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por Jojamaur (1 intervención) el 15/12/2016 21:31:39
Hola a todos, si es mucho mejor keydown como evento
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por marshall (1 intervención) el 21/08/2008 21:55:17
vete a cagar
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por Alex (1 intervención) el 14/09/2010 22:12:50
Pues es muy simple solamente es esto:

1
2
3
4
5
6
if(evt.getKeyCode()==10) // pregunta si la tecla presionada es ENTER 
{
	jTextArea1.append(jTextField1.getText()+"\n");
	jTextField1.setText(null);
	jTextField1.requestFocus();
}
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:Como capturar ENTER en KeyPress para un TextBox

Publicado por Angel Abelino (1 intervención) el 20/05/2017 17:03:56
Excelente Amigo, cambiando la propiedad Enter Key Behavior del control text y utilizando el evento keydown se soluciona el problema de cambio de foco.

1
2
3
4
5
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
  TextBox1.SetFocus
End If
End Sub

el TextBox2 es en donde se encuentra el cursor con este pequeño codigo pasamos al TextBox1 siempre y cuando tengamos en verdadero la proiedad Enter Key Behavior de nuestro objeto TextBox2.
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