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)
-   -   como llenar un combobox y guardar los datos (https://www.clubdelphi.com/foros/showthread.php?t=48875)

amix 06-10-2007 00:16:00

como llenar un combobox y guardar los datos
 
hola a todos tengo un severo problema para el llenado de un combobox
quiero hacer una busqueda mostrando los nombres de la clave pero que haga referencia a su clave su id :( ya he estado haciendo algo de lo que aqui vi pero no logro hacerlo que funcione.

Ojala y me puedan ayudar graxias

enecumene 06-10-2007 00:43:51

hola Amix podrias postear el codigo que estas utilizando? asi te podremos ayudarte.

Saludos.

amix 06-10-2007 01:00:54

si mira esto es lo q estoy haciendo pero a la hora de correrlo no me aparece nada

procedure TfrmConceptos.txtcbChange(Sender: TObject);
begin
sqlBuscar.SQL.Text:='SELECT CVE_TIPOCOBRO FROM CONCEPTOS';
sqlBuscar.Active:=true;
while not sqlBuscar.Eof do
begin
txtcb.Items.Add(sqlBuscar.Fields[0].text);
sqlBuscar.Next;
end;

enecumene 06-10-2007 01:05:10

Código Delphi [-]
 procedure TfrmConceptos.txtcbChange(Sender: TObject);
begin
sqlBuscar.SQL.Text:='SELECT CVE_TIPOCOBRO FROM CONCEPTOS';
sqlBuscar.Active:=true;
while not sqlBuscar.Eof do
begin
txtcb.Items.Add(sqlBuscar.Fields[0].text);
sqlBuscar.Next;
end;

intenta pornerlo en el OnCreate del form luego me comentas.

Saludos

amix 06-10-2007 01:15:34

graxias enecumene por atenderme
pero sigo igual no me aparecen los balores mira te paso todo el codigo igual a la mejor estoy haciendo mal uso de el mismo. Estoy haciendo una busqueda como se muestra esta tabla esta se relaciona con 3 tablas como le puedo hacer para que busque por el nombre y no por su id. Aqui esta el codigo los otros combos no los he puesto porq primero estoy calando con uno. Espero haberme explicado saludos


Codigo delphi[-]procedure TfrmConceptos.btnBuscarClick(Sender: TObject);
begin
sqlBuscar.Close;
sqlBuscar.SQL.Clear;
sqlBuscar.SQL.Add(' SELECT ID_CONCEPTO, ');
sqlBuscar.SQL.Add(' CVE_CODIGO, ');
sqlBuscar.SQL.Add(' FACTOR, ');
sqlBuscar.SQL.Add(' CANTIDAD, ');
sqlBuscar.SQL.Add(' ID_TRAMITE, ');
sqlBuscar.SQL.Add(' ID_UNIDAD, ');
sqlBuscar.SQL.Add(' ID_TIPO_PAGO, ');
sqlBuscar.SQL.Add(' ID_TIPO_COBRO ');
sqlBuscar.SQL.Add(' FROM CONCEPTOS ');
sqlBuscar.SQL.Add(' WHERE 1=1 ');


if txtclave.Text<>'' then begin
sqlBuscar.SQL.Add(' AND ID_CONCEPTO='+ txtclave.Text);
cdsBuscar.Open;
Limpiardatos;
end;

if txtcb.Text<>'' then begin
sqlBuscar.SQL.Add(' AND CVE_CODIGO LIKE'''+txtcb.Text+ '%''');
cdsBuscar.Open;
Limpiardatos;
end;

if txtfactor.Text<>'' then begin
sqlBuscar.SQL.Add(' AND FACTOR='+ txtfactor.Text);
cdsBuscar.Open;
Limpiardatos;
end;

if txtcantidad.Text<>'' then begin
sqlBuscar.SQL.Add(' AND CANTIDAD='+txtcantidad.Text);
cdsBuscar.Open;
Limpiardatos;
end;

if txttramite.Text<>'' then begin
sqlBuscar.SQL.Add(' AND ID_TRAMITE='+txttramite.Text);
cdsBuscar.Open;
Limpiardatos;
end;

if (txtunidad.Text)<>'' then begin
sqlBuscar.SQL.Add(' AND ID_UNIDAD='+txtunidad.Text);
Limpiardatos;
cdsBuscar.Open;
end;

if (txtpago.Text)<>'' then begin
sqlBuscar.SQL.Add(' AND ID_TIPO_PAGO='+txtpago.Text);
Limpiardatos;
cdsBuscar.Open;
end;

if (txtcobro.Text)<>'' then begin
sqlBuscar.SQL.Add(' AND ID_TIPO_COBRO='+txtcobro.Text);
Limpiardatos;
cdsBuscar.Open;
end;

end;

procedure TfrmConceptos.Limpiardatos;
begin
txtclave.clear;
txtfactor.Clear;
txtcantidad.Clear;
txttramite.Clear;
txtunidad.Clear;
txtpago.Clear;
txtcobro.Clear;
txtcb.Clear;
end;

procedure TfrmConceptos.btnSalirClick(Sender: TObject);
begin
CLOSE;
end;

procedure TfrmConceptos.FormCreate(Sender: TObject);
begin
sqlBuscar.SQL.Text:='SELECT CVE_TIPOCOBRO FROM CONCEPTOS';
sqlBuscar.Active:=true;
while not sqlBuscar.Eof do
begin
txtcb.Items.Add(sqlBuscar.Fields[0].text);
sqlBuscar.Next;
end;
cdsBuscar.Open;
end;

[/quote]

Lepe 06-10-2007 01:26:25

Necesitas unir las tablas por las claves en común.

Suponiendo algunos nombres de campos sería:
Código SQL [-]
select  C.id_concepto, C.concepto, T.id_tramite, T.Tramite
from  Conceptos C inner join Tramites T on C.id_tramite = T.id_tramite
Por claridad solo he usado 2 tablas, la de conceptos y la de trámites, pero es cuestión de unir todas las tablas. Busca un manual de sql en la web por "inner join"

Saludos

amix 06-10-2007 01:43:25

Muchas graxias Lepe eso hare saludos =)

metroyd 07-10-2007 22:38:07

intenta esto:
 
Cita:

Empezado por amix (Mensaje 236573)
hola a todos tengo un severo problema para el llenado de un combobox
quiero hacer una busqueda mostrando los nombres de la clave pero que haga referencia a su clave su id :( ya he estado haciendo algo de lo que aqui vi pero no logro hacerlo que funcione.

Ojala y me puedan ayudar graxias

Yo tenia el mismo problema, pero encontré esto:
Ahh, pero esto lo puse en un Boton, si no, no me servia
Bueno, en este boton, almaceno datos en la Base de datos USUARIOS per ademas, lleno un combo box con un campo de tres que tengo en mi tabla USUARIOS, el campo que almaceno es direccion:


procedure TForm1.Button2Click(Sender: TObject);
begin
ComboBox1.Clear;
//DataModule1.ADOQuery1.SQL.Add('select direccion from usuarios');

// Abrir la consulta
DataModule1.ADOQuery2.Open;
// recorrido
while not (DataModule1.ADOQuery2.Eof) do begin
// Rellenar el combo
ComboBox1.Items.Add(DataModule1.ADOQuery2.Fields[0].AsString);
DataModule1.ADOQuery2.Next;
end;
DataModule1.ADOQuery2.Close;
//ADOConnection1.Close;
end;

end.

Metelo en un boton y veras que si funciona


La franja horaria es GMT +2. Ahora son las 10:15:13.

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