PDA

Ver la Versión Completa : ayuda para enlazar con otra tabla


Debian
24-03-2005, 15:56:01
estoy en un programa de base de datos y estoy utilizando un dblookcombobox para escoger un numero que seria un id , este seria el campo llave de esa tabla,
y con dbtext enlazo los datos de esa tabla pero quisiera sacar la ciudad donde vive ese mismo id, claro que la ciudad es otra tabla con un campo llave enlazado al id
pero no me sale me hace falta ayuda:confused:

roman
24-03-2005, 16:48:28
Es un poco confusa tu pregunta así que voy a tratar de adivinar un poco.

Supongo que la primera tabla a que te refieres es una tabla de personas con una llave foránea pra la ciudad y tienes otra tabla para las ciudades. Algo como:

personas = (id, nombre, ciudad_id)
ciudades = (id, ciudad)

Supongamos que tienes componentes TTable, tblPersonas y tblCiudades para las tablas personas y ciudades, que dsrPersonas y dsrCiudades son DataSource enlazados a los Table y que cbCiudades es un DBLookupComboBox. Entonces puedes ajustar las propiedades de cbCiudades como sigue:


cbCiudades.ListSource := dsrCiudades;
cbCiudades.ListField := 'ciudad';
cbCiudades.KeyField := 'id';
cbCiudades.DataSource := dsrCiudades;
cbCiudades.DataField := 'ciudad_id';


Con esto podrás editar el campo ciudad_id con el combo cbCiudades.

Otra opción es agregar un campo de tipo lookup a tblCiudades:

En el editor de campos de tblCiudades (doble click sobre la componente) añades todos los campos que te interese mostrar de la tabla y luego agregas uno nuevo de tipo Lookup. Llenas sus propiedades como sigue:

Name - ciudad
Type - String
Size - lo que mida el campo ciudad en la tabla ciudades
DataSet - tblCiudades
ResultField - ciudad
Lookup Keys - id
Key Fields - ciudad_id

De esta forma tu tabla listará un campo ciudad como si estuviera presente físicamente en la tabla y puedes mostarlo directamente en culaquier control "data aware".

// Saludos