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)
-   -   llenar un combobox (https://www.clubdelphi.com/foros/showthread.php?t=19791)

fabian20s 27-03-2005 01:43:08

llenar un combobox
 
hola a todos mi pregunta es esta como lleno un combobox con los datos de una tabla grasias

roman 27-03-2005 03:36:26

Recorre la tabla con un ciclo:

Código Delphi [-]
while not Tabla.Eof do
begin

  Tabla.Next;
end;

En cada paso del ciclo tomas el valor del campo deseado y lo agregar al combo con Items.Add.

// Saludos

Sotrono 27-03-2005 03:37:54

Para hacer eso te combiene usar un DBComboBox que esta en la paleta "Data Controls". Lo que tenes que hacer es poner en la propiedad "DataSource" el DataSaource que este asignado a la tabla y en "DataField" la columna de la que queres que cargue los datos.
Saludos....

vtdeleon 27-03-2005 06:28:07

Cita:

Empezado por Sotrono
Para hacer eso te combiene usar un DBComboBox que esta en la paleta "Data Controls".

Particularmente recomendaria DBLookupComboBox (esta en la misma paleta), ya que el DbComboBox se comporta como un combobox normal con la particularidad de que está conectada a una DB (mi opinión).

Si conectas el DBLookupComboBox1 a la tabla mediante la propiedad ListSource, Keyfield y ListField. Con esto te ahorras escribir sentencias para mostrar los datos de un campo.

fabian20s 27-03-2005 16:29:38

grasias por las respuestas el DBLookupComBobox me serviria pero el caso es que dicho combo es un detalle de una tabla y no me funsiona en ese caso

fabian20s 27-03-2005 17:10:47

tengo este codigo pero me manda un error

while not Table2.Eof do
begin
ComboBox1.AddItem(Table2.FieldbyName('Nombre Categoria').AsString);
Table2.Next;
end;
el error es "not enough actual parameters"

vtdeleon 27-03-2005 17:38:46

Usa:
Código Delphi [-]
 while not Table2.Eof do
begin
  ComboBox1.Items.Add(Table2.FieldbyName('Nombre Categoria').AsString);
  Table2.Next;
end;

roman 28-03-2005 03:06:22

Cita:

Empezado por fabian20s
el DBLookupComBobox me serviria pero el caso es que dicho combo es un detalle de una tabla y no me funsiona en ese caso

¿Por qué no? Haz una relación maestro-detalle y enlaza el DBLookupComboBox a la tabla de detalle.

// Saludos

aquirce 29-11-2007 14:59:04

Duda
 
Hola, tengo un adotable y un datasource conectado a ese adotable, ahora tengo un bdcombobox conectado al datasourse y le digo en el datafield que muestre el campo que yo quiero, todo me lo hace bien excepto que me lo llena con un solo valor y en mi tabla tengo mas valores para ese campo, si alguien pudiera ayudarme.

Gracias.

eduarcol 29-11-2007 15:03:51

ya leistes lo que recomienda el hilo?? alli esta la solucion especificada

djanp 30-11-2007 12:02:15

yo tambien tengo uan duda con el DBLookupComboBox
tengo una tabla con un codigo proveedor, y otra con la lista de proveedores
pongo ListSource, Keyfield y ListField. bien(creo) y me sale la lista si pincho, pero yo quiero q de primeras, sin pinchar, salga el valor del codigo de proveedor de la primera tabla, pq me sale vacio...

Lepe 30-11-2007 14:04:27

sale vacío porque el campo tiene el valor null (todavía no se ha hecho clic en el combo y no tiene valor).

Asigna la propiedad keyvalue del combo.

dblookupcombo.keyValue := 23 // proveedor con código 23 por defecto al insertar un registro (muy probablemente en el OnNewRecord de tu tabla).

No deberías hacerlo, ya que el usuario podría no cambiar el valor del dblookup (por olvido) y quedar registrado en la BBDD valores inconsistentes. Es mejor que el sistema de un mensaje de error y el usuario lo atienda.

Saludos

djanp 30-11-2007 18:43:21

el caso es q no es un combobox para un registro nuevo, sino uno q ya he creado y q tenga la opcion de cambiarle el proveedor cuando quiera
en este caso querria que me apareciera por defecto el proveedor que le asigne en si dia cuando lo cree...
y no se pq me sale vacio el combo box de primeras


por ceirto como asignariais un valor a un DBedit que salga de un campo de otra tabla que cumpla un valor especifico????

seria algo asi, pero esto no va

dbedit.keyvalue:= (select siguiente from tabla where codigo= 'PV');

eduarcol 30-11-2007 18:54:56

para que te salga el proveedor que le asignastes debes configurar la propiedad DataSet y DataField


La franja horaria es GMT +2. Ahora son las 17:34:31.

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