Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cómo colocar el resultado de una consulta en un ComboBox??? (https://www.clubdelphi.com/foros/showthread.php?t=29629)

gusanita 27-01-2006 06:06:53

Cómo colocar el resultado de una consulta en un ComboBox???
 
Hola!!!

Estoy trabajando con Delphi 5, mi Base de Datos esta en Access.

Realizo el Query de una consulta a una tabla, solo hago la selección de una columna, por ejemplo con cinco registros; ahora mi problema es como colocar estos cinco registros en la propiedad Items de un ComboBox...

Espero puedan ayudarme.

Gracias por su atencion!!!

epuigdef 27-01-2006 08:09:01

Buenas!

Tienes dos opciones:
1) Utilizar un DBCombobox ligado a uno de los campos de tu consulta
2) Añadir a mano cada uno de los regsitros recorriendo el Query:

Código Delphi [-]
while not(Query1.eof) do
begin
    combo.items.add(Query1.fieldByName('blabla').asString;
    Query1.next;
end;


Un saludo

Edu

vtdeleon 27-01-2006 14:50:57

Saludos

Respecto al punto 1 de epuigdef creo que es mejor usar un DBLookUpComboBox, pues el DbComboBox no mostrara la lista de registro

gusanita 27-01-2006 16:15:09

Hola!!!

Gracias por su atención!!!

Bueno lo que realicé fue la combinación de los dos puntos que sugirió epuigdef.

1) Utilizar un DBComboBox y ligarlo a la consulta
2) Posteriormente añadir cada uno de los registros de la consulta, como lo sugirió.

Porque efectivamente como dijo vtdeleon, el DBComboBox no mostrará la lista de registros con solo ligarlo a la consulta, este solo muestra el primero de ella.

Con lo que respecta a utilizar un DBLookUpComboBox, lo intenté pero no encontré la propiedad que me muestra la lista de la consulta...

Pero seguiré intentando y espero pronto decirles que pasó!!!

Muchas gracias nuevamente!!!!

vtdeleon 27-01-2006 17:34:38

Saludos
Cita:

Con lo que respecta a utilizar un DBLookUpComboBox, lo intenté pero no encontré la propiedad que me muestra la lista de la consulta...
Las propiedades a usar son: ListSource, ListField, KeyField.

hecospina 23-01-2008 20:59:58

Hola
Gusanita
Tengo el mismo problema tuyo con la diferencia que no puedo utilizar el DBLookupcombobox, pudiste encontrar una solucion para que la compartas :)

gracias

rlavisse 15-05-2008 22:25:30

Gusanita, me paso lo mismo que a vos. Genere este codigo, pero sigo sin poder cargar mi combo...

procedure TfNuevoSocio.FormCreate(Sender: TObject);
var
q : TSQLQuery;
s : TDatasource;
begin
try
q := TConexion.getQuery;
q.SQL.Text := Concat(' Select codigoProvincia, Provincia '#13,
' From Provincias ');
s := tdatasource.Create(self);
s.DataSet := q;
q.Open;
cbProvincia.ListSource := s;
cbProvincia.ListField := 'Provincia';
cbProvincia.KeyField := 'codigoProvincia';

finally
FreeAndNil(q);
end;
end;

hach 16-05-2008 00:56:40

Cargar combo a mano con ID - DESCRIPCION
 
Esta es la forma que utilizo yo, espero les sirva

CargarCombo:
Donde el sql de query es algo del estilo: "select id, descripcion from tabla"
Código Delphi [-]
Combo.Items.Clear;
while not query.eof do
begin
   Combo.Items.AddObject(query.FindField('Descripcion').asString, TObject(query.FindField('Id').asInteger));
   query.next;   
end;

Esto lo que hace es guardar un objeto asociado al string del combo, ese objeto es el id
Luego, para saber que id se selecciono en el combo hago lo siguiente
Código Delphi [-]
if Combo.ItemIndex=-1 then
begin
   id:= integer(Combo.Items.Objects[Combo.ItemIndex]);
end;

Saludos
Pablo

hach 16-05-2008 00:58:50

correccion!!!
 
Perdón, donde puse

Código Delphi [-]
if Combo.ItemIndex=-1 then

debi ir
Código Delphi [-]
if Combo.ItemIndex<>-1 then

Ahora si....


La franja horaria es GMT +2. Ahora son las 10:27:08.

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