** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - cuadro combinado anidado en dos formularios
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

cuadro combinado anidado en dos formularios

 Responder Responder
Autor
Mensaje
emiliano Ver desplegable
Nuevo
Nuevo


Unido: 11/Junio/2024
Localización: argentina
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita emiliano Cita  ResponderRespuesta Enlace directo a este mensaje Tema: cuadro combinado anidado en dos formularios
    Enviado: 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.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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.

Access Aplicaciones
Tecsys.es
Arriba
emiliano Ver desplegable
Nuevo
Nuevo


Unido: 11/Junio/2024
Localización: argentina
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita emiliano Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Junio/2024 a las 21:34
Sería incluir las líneas:

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


Editado por Mihura - 11/Junio/2024 a las 21:34
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
emiliano Ver desplegable
Nuevo
Nuevo


Unido: 11/Junio/2024
Localización: argentina
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita emiliano Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable