PDA

Ver la Versión Completa : llenar un combobox


fabian20s
27-03-2005, 01:43:08
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:


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
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:
while not Table2.Eof do
begin
ComboBox1.Items.Add(Table2.FieldbyName('Nombre Categoria').AsString);
Table2.Next;
end;

roman
28-03-2005, 03:06:22
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
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