Cuando se abre un formulario (con origen de datos sea consulta o tabla) se crea de forma automática una copia fiel de los datos del momento (asume una foto como símil).
Esa misma 'foto' la obtienen todos los formularios al abrirse que utilicen esa tabla/consulta (los formularios NO tienen datos, los manipulan, los datos están en las tablas y las combinaciones entre tablas se generan mediante consultas) en definitiva: cada vez que se abre un formulario obtiene una copia fiel de los datos de su origen de datos en ese momento.
Si manipulamos (embellecemos cambiamos borramos...) los datos del registro activo en el formulario, se actualizan en el propio formulario y al salir del registro sea para ir a otro o para crear uno nuevo se ejecuta el evento del formulario BeforeUpdate que se encarga de sincronizar (actualizar/trasladar) su origen de datos (tabla consulta) con los cambios.
Esos cambios NO se reflejan de forma instantánea en las 'fotos' del resto de formularios que los estén utilizando, para que las otras 'fotos' reflejen los cambios han de volver a cargar el origen de datos.
Esto es hay una 'foto' en el formulario [F_ALUMNOS] y otra 'foto' modificada o no en el formulario [F_VIVIENDA_ACTIVA] si en el formulario [F_VIVIENDA_ACTIVA] le pintamos un bigote al sujeto de la foto, esta modificación no se reflejara en el origen de datos (tabla/consulta) mientras no se guarde el registro, esto es, mientras no se guarden los cambios, una recarga de los datos de [F_ALUMNOS] no podra ver lo bien o mal que le queda el bigote al sujeto.
Para que en [F_ALUMNOS] se presenten los cambios mas recientes (la nueva foto con el mostacho), hay que guardar los cambios generados en [F_VIVIENDA_ACTIVA], recargar los datos en [F_ALUMNOS] y rehacer las dependencias (las dependencias son el resto de datos basados en el combo).
Normalmente cuando se cambia de Item en el combo, lo hace el usuario y las interactuaciones del usuario disparan los eventos qie cargan en los cuadros de texto auxiliares las columnas ocultas del combo (es lo correcto), pero .... si el cambio de Item del combo NO lo hace el usuario con el teclado/ratón (se hace desde VBA o Macro) NO se disparan los eventos y es el programador el que tendrá que actualizar TODAS las dependencias si fuera el caso.
Se puede hacer de varias formas, desde el propio formulario no hay problema, podemos forzar el evento simplemente 'llamandolo' (Los eventos son Private, esto es: solo validos en y para el formulario, para que desde otro formulario [por ejemplo [F_VIVIENDA_ACTIVA]) se pueda forzar el evento, hay que cambiar su declaración de Private ==>> Public.
Un combo [Cbo_1] su evento 'después de actualizar se declara así:
Para forzarlo (utilizarlo sin que el usuario interactúe con el objeto) se hace así:
Pero si queremos 'utilizarlo' desde [F_VIVIENDA_ACTIVA] (un formulario que es independiente aunque compartan datos 'fotos') necesitaríamos cambiar la declaración del evento así:
Funcionará, pero atención si hay un [Cbo_1] en [F_ALUMNOS] y otro en [F_VIVIENDA_ACTIVA] en el primero no pasa nada (sea public o private le es indiferente) pero si lo utilizamos en [F_VIVIENDA_ACTIVA] tenemos un problema hay dos subfunciones que tienen el mismo nombre y puede pasar cualquier cosa.
Lo mas 'seguro' es actualizar los datos que se modifican (el combo y sus dependientes) y los pasos ya se han descrito (sea en este foro o en 'otro'), guardar los cambios actualizar el combo y (se desconoce como se están actualizando ahora) actualizar las dependencias (lo que haría el evento natural), tras ello ya se puede cerrar el emergente y regresar al formulario [F_ALUMNOS] con todo en su correspondiente lugar.
El problema que tiene 'Requery' es que recarga los datos de origen y se suele perder el registro activo (suele abrir en el primero) por lo que hay que recargar el combo, seleccionar el item (la referencia es el Id del registro en el emergente) y tras ello actualizar los cuadros de texto dependientes para que muestren los datos asociados y aqui entra lo que ya este programado y que a momento actual se desconoce y que puede presentar alguna incompatibilidad.
A lo salvaje:
Abre el emergente y cierra [F_ALUMNOS] (guarda en una variable el registro activo, su ID), pinta bigote y gafas en el registro, en el evento close de [F_VIVIENDA_ACTIVA] abre [F_ALUMNOS] y desplázate al ID guardado ...
Fin (no será profesional, pero funciona perfectamente)