Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Busqueda en base de datos (https://www.clubdelphi.com/foros/showthread.php?t=83799)

exequielmatias1 31-07-2013 15:36:32

Busqueda en base de datos
 
Hola, esta es mi primer consulta en este foto que siempre me ayudo muchisimo, pero esta vez no encontre solucion a mi problema je

Tengo una Base de datos en Access, conectado a un ADOQuery y a un DataSource, esta base se muestra en un DBGrid, tengo 5 Edit, un para filtrar por Pais, otro por Provincia, otro por Apellido y otro Edit por Nombre. Mi consulta es como hacer para que filtre cada edit y se muestre los resultados en el DBGrid. Ej si en Edit1 pongo Argentina muestre todos los datos por Pais>Argentina. Si en Edit2 escribo Cordoba, muestre todos los datos de Argentina y Cordoba, y asi sucesivamente con los proximos Edit.

Casimiro Noteví 31-07-2013 15:46:51

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Cita:

Empezado por exequielmatias1 (Mensaje 464745)
Hola, esta es mi primer consulta en este foto que siempre me ayudo muchisimo, pero esta vez no encontre solucion a mi problema je

Creo que no has buscado muy bien, jejeje... porque esa pregunta es una de las que más se hacen :)

Es fácil, sólo tienes que usar la sentencia sql estandar:
Código SQL [-]
select campo1, campo2, campo3, ...
from tablaComosellame
where pais containing 'argentina'   /* like, =, etc. depende de lo que necesites */
and provincia containing 'cordoba'
and ciudad containing 'pozoblanco'
and calle containing 'central'
and ...
order by campo5, campo29

Neftali [Germán.Estévez] 31-07-2013 16:50:41

Busca en el FTP del club, un ejemplo llamado "Filtros con ADO".

Revisa los demás (ahora sólo recuerdo este), porque es posible que encuentres otros ejemplos referentes a búsquedas y filtros.

exequielmatias1 02-08-2013 17:58:09

Gracias me sirvió mucho sus aportes, pero tengo este asunto que no lo puedo resolver
tengo un boton buscar con este codigo>

Código SQL [-]
begin
Form1.qryMesa.Close;
Form1.qryMesa.SQL.Text:='select * from PERSONAS where FECHANC > :B and FECHANC  < :C and ms_pais Like' + QuotedStr ('%' + Edit2.Text + '%');
   Form1.qryMesa.Parameters.ParamByName('B').Value:= DateToStr(DateTimePicker1.Date);
   Form1.qryMesa.Parameters.ParamByName('C').Value:= DateToStr(DateTimePicker2.Date);
Form1.qryMesa.Open;
Label8.Caption := IntToStr (DBGrid1.DataSource.DataSet.RecordCount);
end;
end.

Esta consulta me funciona pero no puedo hacer que ademas de que me filtre las personas por fecha de nacimiento y pais, ademas me filtre por ciudad, por apellido y por nombre, y me valla discriminando los resultados en un dbgrid.

Casimiro Noteví 02-08-2013 18:19:41

Pero eso es lo que te hemos contestado antes :confused:

Caral 02-08-2013 18:23:55

Hola
Me parece que es un filtro múltiple.
Yo usaría varios combobox en vez del edit.
Saludos

oscarac 02-08-2013 23:13:54

yo creo que deberias armar una cadena dependiendo de los edits algo as
Código Delphi [-]
strsql := 'select * from PERSONAS where FECHANC > :B and FECHANC  < :C '
if edtPais.text <> ''  then
  strsql := Strsql + ' and Pais = ' + quotedStr(edtPais.text)
Endif

if edtProvincia.text <> '' then
  strsql := Strsql + ' and Provincia = ' + quotedStr(edtPais.text)
Endif
y asi sucesivamente por cada edit


La franja horaria es GMT +2. Ahora son las 02:18:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi