TQuery...

Hola, soy el del problemita del Query.SQL.Add('WHERE...+QuotedStr(...);
Bien, en el Edit1.Text, escribo el criterio de búsqueda, en este caso es un nombre, y muy bien, me despliega el registro correcto(gracias a ti!), pero al introducir otro nombre a buscar en el mismo Edit, borrando el criterio anterior, pues ya no me despliega el nuevo resultado...¿Qué puedo hacer?, ¿Necesito algún tipo de refresh o cerrar y volver a abrir el form de consulta?
Espero me haya explicado...
Gracias!

1 Respuesta

Respuesta
1
Por supuesto que tenés que cerrar y abrir la consulta.
Esto lo podes hacer de dos formas:
1) Con un TButton que en su evento OnClick te haga lo que te mandé en el código anterior.
2) Con el evento OnKeyPress (o KeyDown, fíjate) del Edit1. En este caso, yo le pongo un TTimer que activo cada vez que tecleo algo (o sea, cuando el texto anterior del Edit1 es distinto al actual, para lo cual tenés que manejarlo con otra variable auxiliar. Cada vez que tecleo algo y que el contenido del Edit1 cambia, activo el TTimer (500 milisegundos). Si pasan 500 milisegundos sin haber tecleado otra tecla, recién ahí cierro y abro la consulta. En el SQL.Text de la consulta pongo algo así como:
SQL.Text := 'SELECT campo1, campo2, etc FROM nombretabla WHERE UPPER(campobúsqueda) LIKE ' + UPPER(QuotedStr('%' + Edit1.Text + '%')) + ''');
O algo así, fíjate en la sintaxis y revísala, que la estoy escribiendo de memoria.
Abro la TQuery e inmediatamente pongo inactivo el TTimer.
Eso hace que a medida que voy ingresando el dato, me va filtrando automáticamente cuando encuentra lo que está en el Edit1 en CUALQUIER parte del campo de búsqueda. Fíjate también en otras combinaciones como por ejemplo el % sólo al final.
Estúdialo un poco y me comentás.
No te olvides de calificarme, que a los que me califican bien me da más gusto ayudar :-)
Marcelo

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas