Ver Mensaje Individual
  #2  
Antiguo 24-03-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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:

Código Delphi [-]
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
Responder Con Cita