Filtrar datos en un cuadro de texto

Hace unos días me diste una solución para filtrar los datos de un cuadro combinado que me funciono a la perfección.
Aunque la solución la aplique a un cuadro de lista, ahora quisiera mejorar el procedimiento de filtrado.
Quisiera que, al ir entrando caracteres en el cuadro de búsqueda, a cada carácter que entre se actualice la información filtrada del cuadro de lista...
Tengo estos dos procedimientos creados:
1.-
Private Sub Seleccio_GotFocus()
[Seleccio].RowSource = "select * from ClientsAlfabetic where [NomClient] Like ""*"" & [forms]![Visites]![Buscar] & ""*"""
End Sub
2.-
Private Sub Buscar_KeyPress(KeyAscii As Integer)
Dim IntDonde As Integer
Seleccio.SetFocus
Buscar.SetFocus
End Sub
Cada vez que entro un carácter actualiza el cuadro de lista, pero solo deja escribir un carácter, ya que cuando se pulsa el segundo carácter, machaca el primero.
La pregunta es: ¿Hay alguna forma de que el cursor se sitúe al final del ultimo carácter entrado y se puedan ir entrando caracteres?
Gracias

1 respuesta

Respuesta
1
Escribe
Application. SetOption "Selection Behavior", 1
No entiendo la instrucción Al presionar una tecla
1º Defines una variable que luego no usas.
2º Le estás diciendo que al pulsar la tecla el cursor vaya a la vez al control Seleccio y al control Buscar. Entonces, lo que hace cuando escribes un dígito, es que se va a Seleccio y vuelve a Buscar, con lo cual, como por defecto, en Herramientas-Opciones-teclado -Comportamiento al entrar en el campo tendrás activado Seleccionar todo el campo, cuando pones un nuevo dígito "ocupa" todo el campo y por eso borra los anteriores.
Soluciones.
1ºQuita el código de Al presionar una tecla
2º Desactiva lo de Seleccionar todo el campo y activa Ir al final del campo.
Si tuviera que aconsejarte, yo haría lo primero.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas