Combobox en cascada de mas de 5 combobox...

Tengo una BD Productos, con IdProducto, NombreProducto, PrecioProducto,

Familia(Laminas, Tornillos, Pegamentos, Soldaduras),

SubFamilia(de "Laminas" la subfamilia son: AceroInoxidable, Galvanizada, Aluminio, AceroAlCarbon, la Subfamilia de "Tornillos" son: Inox, galvanizados, etc.

SubSubFamilia( de AceroInoxidable es: Caliubre16, Calibre20, Calibre 18 etc.

SubSubSubFamilia( de calibre 16 es : ProtecionPCV, ProteccionVinilAzul etc.

SubSubSubSubFamilia(de PtoteccionPCV es: GradoMedico, GradoIndustrial, etc.

Como podrás observar de Fanilia hay otros combobox que dependen uno del otro en cascada, he encontrado hasta de tres combobox pero nada de mas de tres combobox te agradecería infinitamente un ejemplo te dejo mi Email [email protected]

1 respuesta

Respuesta
1

Los ejemplos que has encontrado te pueden servir de guía. Lo que has de hacer es que el combos "hijo" sea una consulta en la que se filtre por un campo que exista en el "padre".

Para hacerlo de forma correcta puedes basarte en una única tabla o en tantas tablas como combos quieras tener, y dependiendo de cómo lo tengas, se hace de una forma u otra, pero siempre es muy parecido.

La consulta podría ser algo como "SELECT id_Registro, TextoRegistro FROM TablaHijo WHERE idPadre = " & Me.ComboBox_Padre.

En el evento Click del ComboBoxPadre tienes que hacer que se actualice la carga del resto de Combos que dependen de él.

Por ejemplo, si los combos se llaman Combo1, Combo2, Combo3, Combo4 y Combo5, en evento click del Combo1 pondrías Me. Combo2. Requery.

En el del Combo2 Me. Combo3.Requery

En el del Combo3 Me. Combo4. Requery

En el del Combo4 Me. Combo5. Requery

Si indicas cómo tienes las tablas, podré ayudarte mejor.

Por favor dame tu Email para mandarte mi Base de Datos con la finalidad de que le des un vistazo y tal se te facilite mas lo que pregunto, ya que no he logrado hacer los de los combobox en cascada, Gracias por tu pronta respuesta y veré si logro hacer algo con lo que me explicas

Puedes enviarla a [email protected]

Muchas gracias por la pronta respuesta, ya envíe mi BD a su Email buenos dias

Ya he visto el motivo por el que no puedes hacerlo.

En cada registro "hijo" hace falta tener el valor del código del registro "padre" para poder relacionar a cada padre con sus hijos y a cada hijo con su padre. Es decir, les falta el "apellido".

También creo que podría ser más interesante poner todos los datos en una única tabla en vez de tener tantas tablas pequeñas.

Te voy a preparar algo y te la envío.

Algo así me temía pero siempre es mejor preguntar a un experto, y quedo a la espera muchas gracias.

Perdona que tarde en responderte, pero últimamente ando muy liado con mi trabajo.

Estuve pensando cual podría ser la mejor solución, y creo que sería una única tabla, con los siguientes campos:

Id (Autonumérico), es el identificador del registro.

Descripción (Texto del tamaño que quieras) El texto que aparecerá.

Id_Padre (Entero largo) Aquí se pone el Id que corresponde al padre.

Por ejemplo, en tu caso podría ser:

1, Laminas,

2, Tornillos,

3, Pegamentos,

4, Soldaduras,

...

8, AceroInoxidable, 1

9, Galvanizada, 1

10, Aluminio, 1

11, AceroAlCarbon, 1

12, Inox, 2

13, galvanizados, 2

...

...

24, Caliubre16, 9

25, Calibre20, 9

26, Calibre 18, 9

...

...

Y luego para rellenar los combos, puedes utilizar consultas simples que pidan los Id y los textos, filtrando por el Id_padre. Por ejemplo, la consulta del primero sería "Select Id, Descripción FROM TbLista WHERE Id_Padre Is Null", la del segundo: "Select Id, Descripción FROM TbLista WHERE Id_Padre = " & Me.cbo1, la del tercero "Select Id, Descripción FROM TbLista WHERE Id_Padre = " & Me.cbo2, ... Y así rellenarías todos los que quisieras tener.

También puedes utilizar un control TreeView, que es como el que aparece en el explorador de windows, aunque su programación es mucho más compleja y requiere el uso de funciones recursivas y técnicas muy avanzadas de programación.

Hola a_salva gracias por tu respuesta, no tendrás un ejemplo de tu propuesta, dices que todo en una sola tabla, el id_padre seria otra tabla relacionada por el Id de la tabla principal(sin origen ) y así Id_hija1, relacionada a la tabla del Id_padre y el Id_hija2 relacionada al Id_hija1 de esa tabla, es así?, estoy muy confundido y como veras no tengo mucha experiencia en esto de Access 2010, la idea es que conforme se vayan seleccionando los combos, en un cuadro de lista por ejemplo se vayan filtrando los artículos hasta dejar los que cumplan con los criterios de la seleccione de los combos y de los cuales al dar click sobre uno de ellos nos muestre el articulo en su respectivo formulario de productos.

Comentas que andas algo ocupado y espero que esto no te genere mucho tiempo, pero si me poudieras mandar un ejemplo creo seria mas claro para mi que soy novato en esto de Access

Atentamente

Fernando Sánchez

Mexico

Te pido disculpas por tardar en responderte.

He estado haciendo varias pruebas para ver las posibles opciones a tu problema, y la verdad es que planteas un tema excesivamente complejo.

Normalmente los programas y bases de datos para gestión de stock y almacén manejan los productos hasta 3 niveles como mucho, Hacerlo a más niveles es tan complejo que su coste en desarrollo es prohibitivo.

Puedes plantear por ejemplo poner el el detalle de cada producto más información, que puede estar almacenada en tablas (que se consideran maestras ya que el detalle estará relacionado con esa tabla) pero esas tablas maestras no estarán vinculadas entre sí.

De todas formas, eso también es costoso en desarrollo, mira de simplificarlo todo lo posible.

Muchas gracias por tu tiempo veré que puedo hacer si tuvieras un ejemplo con los tres niveles y que te muestre por ultimo el form con los datos del producto seleccionado seria fantástico,

Si logro hacer algo o encontrar la respuesta les enviare el ejemplo para que otros que tengas un requerimiento así puedan lograr sus metas

Saludos

Fernando Sánchez

Mexico

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas