Búsquedas en tablas
Buenas tardes!!!
Tengo una aplicación que rellena campos según un número de teléfono, es decir, lo típico, se pide un número de teléfono y a partir de éste se rellenan el resto de las edit. Pero me encuentro con un problema, al no ser el número de teléfono la clave, puedo tener a varias personas con el mismo número de teléfono pero con distinto nombre. Entonces, cuando rellenan el campo del teléfono hago: procedure TPres1.PTlfExit(Sender: TObject); begin With Inicio.Personas do begin First; if Locate('Tlf',PTlf.text,[]) then begin RELLENO LOS EDIT AQUÍ TENDRÍA QUE COMPROBAR SI EXISTEN MÁS PERSONAS CON ESE NÚMERO DE TELÉFONO Y ACTIVAR UN BOTÓN QUE HE LLAMADO BSIGUIENTE. BSiguiente.enabled:=True; end; end; end; No sé cómo comprobar si existen más personas con ese número de teléfono, es decir, tendría que buscar después de ese registro, pero no sé avanzar el puntero. Admeás, me falta el procedimiento de cuando le de al botón de siguiente, pero cómo avanzo el puntero de la tabla para que me busque a aprtir del que ya ha encontrado?? (poniendo 'next' me sigue encontrando el mismo) muchas gracias P.D.: Perdón por las mayúsculas, pero las he utilizado por claridad. Gracias. |
Wop!
¿Por qué no en lugar de hacer un locate no filtras la tabla? Así solamente tendrías los registros con el teléfono en cuestión, de manera que al hacer el Next conseguirías el efecto que propones. Otra cosa, para mayor claridad, es mejor que pongas tu código entre tags [delphi], sino, da dolor de cabeza leerselo ;) |
no es dificil, simplemente debes poner una condición en el filter y llamar a FindFirst - FindNext.
No es necesario que la propiedad Filtered este a true (aunque con eso conseguirias ver en un grid solo aquellos telefonos que cumplen la condición) seria algo asi:
|
Muchas Gracias, con eso del findFirst me funciona, no lo conocía, muchas gracias otra vez. :)
|
Wop!
cuando uses los tags tienes que cerrarlos al estilo xml, en este caso, [/delphi], he editado tu mensaje, para que se vea correctamente ;) |
Cita:
valla, lo siento .. y gracias por la corrección marto ^_^ |
Y otra preguntilla mas...
Cómo se pueden hacer los filtros por más de un campo? Gracias |
Wop!
En la propiedad Filter puedes poner condiciones simples unidas por AND y OR. Cita:
|
Ya intenté lo que me dices, pero no compila, puse:
Lo probé con paréntisis y sin ellos, y me dice: 'operator not applicable to this operand type' eso con los paréntisis, sin ellos me dice muchas más cosas. gracias. |
mmmmm ¿tú te has leído la ayuda? La propiedad Filter es de tipo String..... no le puedes hacer un and.... el "and" tiene que estar dentro de la cadena...
|
en estos casos es muy util tirar de la función Format:
|
mou?
Inglés, la verda q no entiendo mucho, la ayuda me la he leído, sí, lo q me has puesto antes ya lo había visto yo, pero la cosa es... y entonces??? cómo lo puedo hacer??? qe meta el and dónde?? ains... muchas gracias |
Muchas gracias Ruina, empiezas a ser mi Dios... muackas!!!
|
Otra preguntilla
Yo quiero hacer una busqueda, donde una palabra en un edit, se encuentre en cualquier parte del campo de un registro, lei en la ayuda que se puede hacer al go como esto
Cita:
algo asi select * from cliente where empresa Like '%Tijuana%' order by empresa ya intente usar el like en el filter pero me marca el error: raised exception class EDBEngineError with message 'Operation not aplicable.' , gracias por su ayuda Uso delphi 5, win 98 se, e interbase 1.0.0.315 |
siempre no jeje
Bueno es ke me he leido este hilo
http://www.clubdelphi.com/foros/show...ghlight=Filter y ya veo ke es imposible hacer lo ke kiero :(, entonces tendre ke usar una sentencia sql en tiempo de ejecucion, gracias de antemano y hasta luego :D |
La franja horaria es GMT +2. Ahora son las 13:32:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi