Cuadros Combinados en Cascada Independientes

Tengo 5 cuadros combinados en un formulario que utilizo para introducir datos en un registro del lugar de domicilio de un estudiante (País, Estado, Municipio, Parroquia y lugar)

Los quisiera tener anidados, pero me surge un problema que a partir de parroquia no coloca los valores correctos

2 Respuestas

Respuesta
1

¿Cómo tiene relacionados los campos? ¿Tiene Parroquia algún ID que se relacione con Municipo? ¿Existe un ID de lugar que esté relacionado con Parroquia?. ¿Con la información que suministra en mi caso no es posible emitir algún concepto?

cada dato tiene su id que lo relaciona hasta parroquia de ahi en adelante coloca los datos incorrecto, si quiere le envioel archivo para que lo revise?

Me puede enviar el archivo comprimido a [email protected]. Favor anotar en el asunto su pregunta

Respuesta
1

Antes de responderte, sólo dos preguntas

1º ¿Vas a usar siempre los 5 combinados?

2º Pais, Estado,... ¿etc están todos en una misma tabla o cada uno tiene su tabla relacionada con la anterior y la siguiente?

Una vez respondas esto se puede dar una respuesta muy sencilla.

1- si lo voy a utilizar siempre los 5

2- cada uno tiene su tabla en total tengo 5 por ejemplo (id_pais, pais), (id_pais, id_estado, estado), (id_estado, id_municipio, municipio), (id_municipio, id_parroquia, parroquia), (id_parroquia, id_lugar, lugar) y hice una tabla con todas las id.

No necesitas para nada la tabla esa que dices con todos los id. Te aconsejaría que dejaras los orígenes de la fila de todos en blanco y en las propiedades del combinado Pais, que supongo que tendrá dos columnas IdPais y Pais y que la columna dependiente es la 1, aunque esté oculta, en el evento Al recibir el enfoque crear un procedimiento de evento y entre Private Sub y End Sub poner

pais.rowsource="select idpais, pais from Pais"

En el combinado Estado lo mismo y en el evento Al recibir el enfoque

estado.rowsource="select Idestado,estado from Estados where idpais=" & me.pais & ""

En el combinado Municipio, lo mismo y en el evento Al recibir el enfoque

Municipio.rowsource="select Idmunicipio,municipio from municipios where idestado=" & me.estado & ""

En el combinado Parroquia, en el mismo evento que los anteriores

parroquia.rowsource="select Idparroquia, parroquia from Parroquias where idmunicipio=" & me.municipio & ""

Y por último, en el combinado Lugar

lugar.rowsource="select Idlugar,lugar from Lugares where idparroquia=" & me.parroquia & ""

O sea, que cuando un combinado recibe el enfoque(poner el cursor en el) es cuando le "das" origen de la fila.

lo coloque asi

cbox_paisnac.rowsource = "select id_paises, paises from tb_paises"

cbox_estadonac.rowsource="select id_estados,estados from tb_estados where id_paises=" & cbox_paisnac & ""   y lo que envia son numeros y asi me da un error

paises.rowsource = "select id_paises, paises from tb_paises"

No sé como son tus tablas por eso tengo que suponer. Mira, yo tengo una tabla Continentes(la idea era poner las cinco ciudades más importantes de cada país del mundo, pero me aburrí y sólo terminé Europa, así que vamos a usarlo

Como los continentes no se van a repetir, he puesto el campo como clave. Luego tengo la tabla Paises, relacionada con la anterior por continente(sería exactamente igual que si usaras un Id)

No te preocupes, no la rellené a mano, para eso está el update y por último tengo la tabla Ciudades, relacionada con la anterior por Pais

En un formulario, da igual si tiene origen de registros como si es independiente, creo los combinados y el origen de la fila lo dejo en blanco

En sus propiedades-Eventos-Al recibir el enfoque del combinado continente creo un proc. De evento y pongo

Private Sub Continente_GotFocus()
Continente.RowSource = "select continente from continentes"
End Sub

Ya que sólo voy a usar una columna, pero podían perfectamente ser 2, una para el idContinente y otra para el continente y ocultar la del Id, aunque seguiría siendo la columna dependiente

En el combinado Pais en el mismo evento que el anterior le pongo

Private Sub Pais_GotFocus()
Pais.RowSource = "select pais from paises where continente='" & Me.Continente & "'"
End Sub

y en el combinado Ciudad le pongo

Private Sub Ciudad_GotFocus()
Ciudad.RowSource = "select ciudad from ciudades where pais='" & Me.Pais & "'"
End Sub

 De forma que cuando abro el formulario lo veo así

Cuando pongo el cursor en Continente(en la flechita para que se despliegue)

Elijo Europa y cuando pongo el cursor en Pais

Elijo Alemania y cuando pongo el cursor en el combinado Ciudad

Y así se iría haciendo con todos los combinados que quieras, el origen de la fila se lo dá el combinado anterior cuando elijes algo.

¡Gracias! por tu tiempo me sirvió de mucho

Pues, si no te importa, cierra la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas