Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   busqueda en tabla con edit y un dbcombobox (https://www.clubdelphi.com/foros/showthread.php?t=46543)

memox 03-08-2007 03:00:48

busqueda en tabla con edit y un dbcombobox
 
Hola a todos soy memox, soy nuevo aca y queria hacerles una consulta, estoy haciendo un

trabajo para la facultadad, la pregunta puede ser basica pero recien comienzo con esto de Delphi.



Tengo 2 tablas en paradox, y lo que quisera es con en el edit escribir lo que voy a buscar(como

ejemplo en la imagen de arriba) un numero de dni, con el dbcombobox quisiera selccionar los

nombres de campo de la tabla(la tabla persona), entonces tomo el el texto del edit y con el

nombre del campo de la tabla busco solo en ese campo y lo muestro en un dbgrid, o sea que si elijo

un campo de la tabla que es numerico el edit no me aceptaria texto(no se por que escribi eso pero

trato de detallar lo + que puedo), bueno espero me puedan ayudar.....

PD: y quisiera saber si en un db combobox puedo poner los campos de 2 tablas distintas

anubis 04-08-2007 11:14:33

Hasta donde te puedo ayudar, te dire que puedes usar un edit y un tdblookupcombobox, es mas facil, aunque a veces no funcina como uno quiere pero sirve.
te pongo aqui lo que estoy usando, tengo que decirte que lo he buscado en el foro y tambien es fruto de lo que me han respondido.

Código Delphi [-]
procedure Tfconcliente.Edit1Change(Sender: TObject);
var
i:integer;
begin
  buscapersona.keyvalue := null;
  for i:= 1 to length(edit1.text) do
     SendMessage(buscapersona.Handle, WM_CHAR, integer(edit1.text[i]), 0);
end;

buscapersona es el dblookupcombobox que lo he llamado asi.
No se si te habra aclarado algo.

Sobre que un edit tenga campos numericos si se puede.
tan solo tienes que convertir el campo numerico en campo string

Código Delphi [-]
edit1.text:=inttostr(campo);

espero haberte aclarado algo, porque tambien soy algo novato.

un saludo

memox 04-08-2007 19:04:23

ok gracias amigo me das una otra idea, te comento que ya use el

dblookcombobox, y no me hizo lo que quise por que lo que me muestra en el

combo son los datos internos de las tablas osea lo que ingrese yo solo quiero

que me muestre los nombres de los campos de la tabla, voy a probar lo que

me dices a ver que sale. salu2

Caral 04-08-2007 19:15:28

Hola
Tal vez si esplicas con un poco mas de claridad podriamos entender mejor.
Te comento esto por que la pregunta me parece que esta compuesta de varias partes y es un poco dificil entenderla, te dire lo que he entendido.
1- tienes 2 tablas
2- tienes dos combobox y un edit.
3- quieres que filtre el edit la informacion que se genere en base a la adquisicion de los datos de dos tablas que estan en el combobox.
memox, con toda la mejor voluntad, no entiendo, me lo explicas un poco mas detallado ?.
Saludos

memox 04-08-2007 20:23:12

ok aca voy.
Tengo que buscar datos en una tabla, Tabla persona(nombre, dni, telefono,etc),
Lo que quiero es que el dbcombobox se pueda seleccionar(nombre, dni, telefono, etc) los nombres no el contenido; entonces lo que escribo en el edit me lo compare con el contenido del campo seleccionado, si ingreso vivian black que me busque ese nombre en la tabla en el campo nombre y asi con el campo que se seleccione en en combobox.
Ah y tengo el boton buscar que es el que pulsaria para que se realice la busqueda una vez selecionado el/los combobox y se haya escrito lo que quiero buscar.

Con respecto al 2º dbcombobox, eso todavia no se si implementarlo,lo que haria es es poder seleccionar el tipo de busqueda que se haria, parcial, completa, etc, osea que si escribo pedr, podria decirle a la busqueda que contenga cualquiera de esas letras o que me busque exactamente,pero 1º quiero que me ande el principio.

tengo 2 tablas por que tengo 1 que se llama persona y otra socio(nº socio, cuenta,etc) y estan enlazadas por el dni de la persona, en realidad son 18 tablas pero para esto necesito estas 2.

bueno espero haber sido lo mas claro posible, mas no puedo soy modelo jaja, bueno salu2

Caral 04-08-2007 21:09:20

Hola
Hagamos lo asi:
No me has dicho que componente usas para conectarte, pero, bueno:
Código:

procedure TFBuscaCliente.Edit1Change(Sender: TObject);
var
  Filtro : String;
begin
  If (Edit1.Text <> '') then
  begin
      Query1.Filtered := False;
      If Combobox1.Text = 'dni' then Filtro := 'dni Like ' Edit1.Text
        else If Combobox1.Text = 'Nombre' then Filtro := 'Nombre Like '''  Edit1.Text  '*'''
            else If Combobox1..Text = 'Teléfono' then Filtro := 'Telefono Like '''  Edit1.Text  '*''';
      Query1.Filter := Filtro;
      Query1.Filtered := True
  end
  else Query1.Filtered := False;
end;

Por Cierto, Gracias Roman, queda muy bien.
Saludos

memox 05-08-2007 02:09:54

muchas gracias era eso, salu2.


La franja horaria es GMT +2. Ahora son las 09:47:34.

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