Ver Mensaje Individual
  #3  
Antiguo 19-01-2007
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
Supongo que tendrás tus tablas paises y estados similares a éstas:

paises = (id, pais, ... )
estados = (id, estado, pais_id)

donde id es la llave primaria.

Tendrás dos Table (o los dataset que uses para tu base), tblPaises y tblEstados, enlazados a estas tablas. Tomas dos DataSource, dsPaises y dsEstados y los conectas a los Table mediante su propiedad DataSet.

Ahora, lo que debes hacer es establecer la relación maestro-detalle entre paises y estados. Para ello, en tblEstados asignas dsPaises a su propiedad MasterSource y en su propiedad MasterFields pones id;pais_id para relacionar la llave de la tabla paises con la llave foránea pais_id de la tabla estados.

Finalmente, en lugar de usar ComboBox, usa dos DBLookupComboBox, digamos cbPaises y cbEstados. Popnes sus propiedades así:

cbPaises.ListSource: dsPaises
cbPaises.KeyField: 'id';
cbPaises.ListField: 'pais'

y similar para los estados.

De esta manera, los combos mostrarán automáticamente los registros de las tablas, y, gracias a la relación con MasterSource y MasterFields, el combo de los estados se filtra automáticamente.

// Saludos
Responder Con Cita