FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mostrar datos en DBcombobox
Quiero mostrar todas las filas de una columna llamada idiomas en un DBcombobox y solo me muestra la primera fila.
¿Como prodría hacer que me muestre todas las filas? Un abrazo... |
#2
|
|||
|
|||
Hola:
No lo acabo de entender, o bien la tabla está filtrada, o enlazada como detalle de otra, por lo cual no te aparecen todas las filas. Prueba de poner un TDBListBox a ver si te ocurre lo mismo. Un saludo |
#3
|
|||
|
|||
A mi me pasa lo mismo, con un TDBListBox, si que funciona, pero yo también quiero utilizar un DBComboBox, y no se como hacerlo.
Y la tabla no esta filtrada ni nada de nada. |
#4
|
||||
|
||||
Yo te recomendaría utilizar un TDBLookupComboBox, en las propiedades ListSource y ListField, asignar el datasource y seleccionar el campo a mostrar. Las propiedades DataSource y DataField, es donde va a guardar este dato seleccionado.
Suerte!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
Cita:
Un Abraaazo. gracias a todos por las respuestas. |
#6
|
|||
|
|||
Para esto exite una propiedad DropDownRows, donde indicas el número de registros que quieres que te muestre a la vez.
|
#7
|
||||
|
||||
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#8
|
|||
|
|||
Hola, Otro Para Ti, si he entendido tu pregunta quieres desde una tabla cargar los nombres de los idiomas para poder escogerlos, filtrarlos, etc.
Si es como imagino el DBComboBox no es tu solución está concebido para otra función de ahí que solo veas el primer registro y al desplegar lo veas vacío. En realidad su función básica es a partir de los valores pre-establecidos en su propiedad Items sustituirlos o introducirlos en el registro corriente de la tabla asociada. Si tus datos son provenientes de una tabla, cosa que no aclaras, yo prefiero el uso del ComboBox y con un bucle cargar los datos requeridos, esto si es muy simple e incluso si tus idiomas ya están definidos y no te interesa introducir nuevos puedes teclearlos en tiempo de diseño (esto no me gusta rigidiza la aplicación). Quisiera saber en realidad donde esta tu fuente de datos y quizas te pueda brindar mejor solución. Si buscas en los históricos encontrarás respuestas de este tema. Saludos |
#9
|
||||
|
||||
Cita:
Aún si no desea usarlo para editar un campo en una tabla relacionada puede usarlo prescindiendo de las propiedades DataSource y DataField. El combo se llena automáticamente con los valores de la tabla referenciada por ListSource. // Saludos |
#10
|
|||
|
|||
Cita:
Creo es menos trabajo y mejor solución la que propone delphi.com.ar si lo que se quiere es ver todos los registros del campo, pero si quisieramos filtrar en la misma tabla y traer al control los valores sin repetirlos entonces no se como hacerlo con el TDBLookupComboBox mientras que con el combobox se pueden cargar valores iguales una sola vez sin que se repitan aunque esten repetidos en los registros. Creo que depende de lo que se quiera hacer. Lo que tambien pretendía era dejar claro el común error de pensar que el DBComboBox puede visualizar todos los registros de un campo función que si es valida para el DBLookupComboBox. Gracias por tu oportuna aclaración. Saludos |
#11
|
|||
|
|||
Respecto a la pregunta de si los datos salen de una tabla, pues si, salen de una.
Y ahora me viene otras preguntas que son: Utilizando el TDBLookupComboBox como consigo mediante el codigo obtener un dato de la lista, es decir, si tengo 3 idiomas en la tabla, y en el TDBLookupComboBox aparecen los tres Ej. Español, Ingles Aleman. ¿Como hago que me aparezca por defecto en el programa el idioma que yo quiera? Y a Ruben_Cu le queria preguntar, en caso de hacerlo con un ComboBox ¿como obtengo los datos de la tabla para guardarlos en el bucle? Un Abraaazo. |
#12
|
|||
|
|||
la solución si no me equivoco es la siguiente.... al menos yo lo tengo resuelto así.
cuando abrais la tabla del lookup debeis iros al último registro. con esto se soluciona el problema. Es decir, imaginaros que abrís un formulario y al activarlo activais todas las tablas, y la tabla del lookup se llama idiomas, pues bien, el en evento onActivate del formulario debereis escribir: idiomas.last; con esto os mostrará todas las opciones en el lookup. Ya que se no es "muy elegante" porque tiene que recorrer todos los registros, pero de esta forma seguro que se soluciona |
#13
|
||||
|
||||
Cita:
// Saludos |
#14
|
|||
|
|||
Cita:
Para ordenar alfabéticamente con el DBLookupComboBox la única forma que conozco es creando índice secundario para el campo Idiomas no es posible en el control. Código:
with TuTabla do begin DisableControls; //puede no ser necesario first; while not eof do begin if (ComboBox1.Items.IndexOf(FieldByName('Idiomas').AsString)=-1)then //en caso que existan registros iguales solo cargaría uno ComboBox1.Items.Add(FieldByName('Idiomas').AsString); next; end; EnableControls; //puede no ser necesario end; ComboBox1.ItemIndex:=1; Un abrazo |
#15
|
|||
|
|||
Gracias a tos por responder. Ya me mustra todos las filas en la lista... ahora lo que me falta es poner uno como predefinido.
¿Como seria para que me aparezca en el Edit 'Español' Siempre por defecto? Un abraazo. |
#16
|
|||
|
|||
Ya consegui poner el Español por defecto. Gracias a todos.
Un abraaazo. |
#17
|
|||
|
|||
Gracias por la ayuda
Estimado amigo, estube con la misma pregunta de como mostrar una base de datos en un combobox y tu respuesta fue de gran ayuda. Gracias.
|
|
|
|