FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Autocompletar en un Edit
Hola
Tengo una aplicación que maneja una base de datos y en la búsqueda de datos necesito que cuando el usuario vaya ingresando lo que quiere buscar, el DbEdit (o lo que sea) se vaya autocompletando con los datos existentes en la base. Intenté hacerlo con un DbLookupComboBox y funciona pero no muestra lo que yo voy escribiendo y además muestra registros repetidos. ¿Hay alguna forma de hacer esto? Saludos y gracias. Walter |
#2
|
|||
|
|||
Hola:
Sí es posible hacer lo que quieres . Yo entiendo que tienes un control DBedit y un control DBGrid que te va a ir acercando al registro que quieres encontrar. Lo que tienes que hacer es en el evento KeyPress del DBEdit ir actualizando la consulta para que cada vez que aprieten una tecla le pongas esa condición a la consulta. No recuerdo muy bien si se tiene que poner la propiedad keyPreview a true de la forma pero puedes probar. Salu2 y espero te sirva
__________________
Ernesto R. |
#3
|
|||
|
|||
Hola Ernesto
Muchas gracias por responderme. No me quedó muy claro lo que tendría que hacer, me gustaría que me expliques un poco mas porfavor. Un abrazo. Walter |
#4
|
|||
|
|||
Holas:
Bueno como te dije me imagino que tienes un TDBEdit ( o TEdit) y un TDBGrid que mostrará los resultados, conectas un TDataSource al Tquery y al DBGrid. En el evento onkeyPress del Edit escribirías algo como: procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin with query do begin Close; Clear; SQL.ADD('select "nombrecampos" from "nombretabla" where "nombrecampo" like ' + edit1.text) Open; end; end; y eso es todo. Bueno aqui me parece que el problema es que no toma en cuenta el primer caracter, por lo que te aconsejo le eches un ojo al metodo onKeydown para que lo tome en cuenta. Recuerda tb que al query se le puede pasar ese valor como parámetro. Ahh y una cosa mas para que los campos no se te repitan, necesitas poner despues del Select la palabra distinct y seguir con la lista de campos. Salu2 y espero te sirva ;
__________________
Ernesto R. |
#5
|
|||
|
|||
Ernesto, muchas gracias por tu molestia en responderme.
Quería decirte que tus sugerencias me fueron de mucha utilidad. Un abrazo y gracias nuevamente. Saludos. Walter |
#6
|
|||
|
|||
Hola
He intentado usar la solución propuesta, pero me pasa una cosa curiosa con el query. Si pongo en el SQL la linea: Código:
SELECT * FROM "_Ruta a mi BBDD" MiBBDD Me saca todos los registros de la tabla, pero si la sustituyo por: Código:
SELECT Campo1,Campo2,...,UltimoCampo FROM ""_Ruta a mi BBDD" MiBBDD WHERE Campo1 LIKE 'Valor' En la form tengo un query, un table, y dos datasource, conectados como sigue: DataSource2 <- Query <- DataSource1 <- Table No se si es necesario conectarlas así, si está mal, agradecería un consejillo sobre el tema de las conexiones, que creo que siempre lo hago un poco "a boleo". Saludos del elfo |
#7
|
||||
|
||||
#9
|
|||
|
|||
Muchas gracias. Probaré las JVCL. Le he pegado un vistazo a la demo y hay varias cosas MUY interesantes.
Además, es freeware, no? Saludos del elfo |
|
|
|