Imprimir página | Cerrar ventana

cuadro combinado anidado en dos formularios

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86946
Fecha de impresión: 26/Marzo/2026 a las 19:25


Tema: cuadro combinado anidado en dos formularios
Publicado por: emiliano
Asunto: cuadro combinado anidado en dos formularios
Fecha de publicación: 11/Junio/2024 a las 03:04
Hola. Tengo 4 cuadros combinados anidados o sincronizados, que al elegir determinada opción en el primero, en el segundo, en el tercero y cuarto van apareciendo en cascada las diferentes listas de opciones correspondientes en los subsiguientes según los estipulado. Hasta ahí todo bien.  El cuadro combinado principal o 1 se halla en un formulario A y los otros tres combos se completan al entrar a un nuevo formulario B, accionando boton "abrir formulario B", el cual se abre en modo dialogo. Si tengo que completar nuevos registros pareciera funcionar todo perfecto, pero cuando por alguna equivocación tengo que cambiar una opción ya elegida en el cuadro combinado 1, al volver a ingresar al formulario B sólo el cuadro combinado 2 está en blanco o vacío; los cuadro combinados 3 y 4 mantienen las opciones elegidas anteriormente. De todos modos, si despliego la lista en combo 2 aparecen las categorías esperadas y al seleccionar una de ellas entonces sí se blanquean los combos 3 y 4 y las listas de los mismos son las sincronizadas.
La pregunta sería como lograr que, al abrir formulario B, los combos 3 y 4 también se blanqueen al cambiar la opción seleccionada en combo principal 1 del formulario A, de modo de evitar confusión en otro usuario.



Respuestas:
Publicado por: Mihura
Fecha de publicación: 11/Junio/2024 a las 08:52
Entiendo que el formulario B es independiente del A  ...
· hay varias formas, una sería lanzar un requery de los combos 3 y 4 justo después de pasarle el valor al cambo 2.

Bienvenido Emiliano.




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: emiliano
Fecha de publicación: 11/Junio/2024 a las 20:11
Hola gracias. Si, son formularios independientes. El requery ya lo tienen hecho pues al seleccionar una opción del combo 2 se blanquean o despliegan las listas correspondientes según el caso. Lo que quería consultar es si es posible que se vacíen los 3 combos del formulario B en simultaneo al "re-seleccionar" una opción en el combo 1 del formulario A por algún error en la selección previa. Digamos que se referencien los tres combos del formulario B y no sólo el combo 2.

En los combos 2,3 y 4 que se hallan en el fomulario B, en el evento "despues de actualizar" les fui agregando sucesivamente las capas de Me.Requery y vbNullString. Por otro lado, en la respectiva consulta de origen de la fila, "datos", de hoja de propiedades, asociándolos mediante el generador en la fila de criterios a través de la llave externa que es el id del combo anterior. 
En el combo 1 del formulario A, siguiendo esa lógica inscribí este código en el mismo evento pero genera error, entiendo que debe ser que la función Me. en este caso falta relacionarla de algún modo con el formulario B ( eso no sé como hacerlo)

[FOMRULARIO A] COMBO 1

Private Sub cdro_1_AfterUpdate()
Me.cdro_2 = vbNullString
Me.cdro_2.Requery
Me.cdro_3 = vbNullString
Me.cdro_3.Requery
Me.cdro_4 = vbNullString
Me.cdro_4.Requery
End Sub

[FORMULARIO B] COMBOS 2,3,4 ----- esto sin el código de arriba funciona bien

Private Sub cdro_2_AfterUpdate()
Me.cdro_3 = vbNullString
Me.cdro_3.Requery
Me.cdro_4 = vbNullString
Me.cdro_4.Requery
End Sub

Private Sub cdro_3_AfterUpdate()
Me.cdro_4 = vbNullString
Me.cdro_4.Requery
End Sub

PD: creo que el diseño de los combos esta bien armado porque si los coloco a todos en un mismo formulario, a manera de prueba nomás, funciona correctamente con el mismo código de arriba del cdro1 AfterUpdate


Publicado por: Mihura
Fecha de publicación: 11/Junio/2024 a las 21:34
Sería incluir las líneas:

Forms("NombreFormularioB").Controls("cdr_2") = ""
Forms("NombreFormularioB").Controls("cdr_2").requery


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: emiliano
Fecha de publicación: 12/Junio/2024 a las 04:24
No me lee esas líneas para llamar a un control de otro formulario, me da error. ¿Cambia la codificación en access 2007? Cuando la iba escribiendo no me aparecían los nombres de los objetos por defecto, ni del formulario, ni del combo.



Imprimir página | Cerrar ventana