Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
TDBLookupComboBox

Tengo en un formulario un ComboBox y un DBLookupComboBox (DBLCBfiltro).
Dependiendo de lo que seleccione en el ComboBox, el DBLookupComboBox debe asociarse a una u otra tabla.
Bien, para asociar en tiempo de ejecución una tabla a un DBLookupComboBox, hago en onchange del ComboBox un if con las opciones y dentro de cada opcion hago:

DataModule.tabla1.Active;
DataModule.tabla1.Open;
DBLCBfiltro.ListSource:=DataModule.DStabla1;

hasta aqui bien, pero luego:

DBLCBfiltro.ListField:= DataModule.tabla1.nombre; (da error de compilación)
DBLCBfiltro.KeyField:=DataModule.tabla1.codigo; (da error de compilación)

He intentado tambien:

DBLCBfiltro.ListField:= nombre; (da error de compilación)
DBLCBfiltro.KeyField:= codigo; (da error de compilación)

Y por probar:

DBLCBfiltro.ListField:= DataModule.DStabla1.nombre; (da error de compilación)
DBLCBfiltro.KeyField:=DataModule.DStabla1.codigo; (da error de compilación)

¿Como se hace?, se que seguramente será una chorrada, pero estoy atrancada.

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 21-05-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Hay que pasarle una cadena con el nombre del campo a enlazar.
Código Delphi [-]
 
DBLCBfiltro.ListField:= 'Nombre';
DBLCBfiltro.KeyField:='codigo';



Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 21-05-2006 a las 17:16:54.
Responder Con Cita
  #3  
Antiguo 21-05-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
Esto es lo mismo, ¿no?
DBLCBfiltro.ListField:= DataModule.tabla1.Fieldvalues['nombre'].AsString;
DBLCBfiltro.KeyField:=DataModule.tabla1.Fieldvalues['codigo'].AsInteger;

Porque si lo es, no funciona, casca en tiempo de ejecuión en el momento en que seleciono el valor en el ComboBox.
Me da error 'Invalid Variant Operation' y señala la 1º linea de las dos de arriba.

¿Alguna otra opción?
Responder Con Cita
  #4  
Antiguo 21-05-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tengo que salir, pero sino recuerdo mal lo seleccionado el en Combobox se puede recuperar por la propiedad Text del mismo

Código Delphi [-]
DBLCBfiltro.ListField:= Combobox1.Text;
Lo que hay que pasarle es el nombre del campo como texto.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 22-05-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
No va asi.
Lo que pasa es que si yo selecciono del combobox, por ejemplo 'entidad', el dblookupcombobox tiene que cargarse con los valores del campo nombre de la tabla 'tentidad', por lo que hay que darle en el listsource el datasorce de la tabla tentidad, en el listfield hay que indicar que el campo de la tabla que quiero que muestre sea el campo 'nombre' y en el keyfield, hay que indicar el campo clave de dicha tabla (que en este caso es el campo 'codigo')
Responder Con Cita
  #6  
Antiguo 23-05-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
Ok, lo que pone ahora en la 1º respuesta si que funciona.
Muchas gracias.
Responder Con Cita
  #7  
Antiguo 09-06-2006
thomasini thomasini is offline
Registrado
 
Registrado: jun 2006
Posts: 3
Poder: 0
thomasini Va por buen camino
DBLookupComboBox dinamico

Estimados .

Alguien de uds tiene idea de como hacer q este componente DBLookupComboBox se cree dinamicamente y tome el tamaño de la descripcion asociada a una lista de datos en una BD. por ejemplo

si lo q muestra el "combo" es de solo 20 caracteres pues q tenga un tamaño de 20 como maximo pero si dentro de la lista de items hay una palabra de 30 q se agrande automaticmanet o que se disminuya sea cualquiera de los casos.

Agradecer una pronta respuesta.

Saludos
Thomas M.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DropDownRows y TDBLookUpComboBox ZRR Firebird e Interbase 2 01-11-2005 16:01:20
ADO y TDBLookUpComboBox miquellg Conexión con bases de datos 7 19-08-2005 09:45:52
TDBLookUpComboBox no funciona!! Juanan.Sosa OOP 1 01-04-2005 12:31:23
Problema con TDBLookupComboBox Miguel Rodrigo Conexión con bases de datos 2 06-02-2004 23:43:23
Problemas con TDBLookupComboBox ramiretor Conexión con bases de datos 3 30-01-2004 23:31:54


La franja horaria es GMT +2. Ahora son las 06:31:15.


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
Copyright 1996-2007 Club Delphi