En principio supuse que se trataba de una actualización de todo el conjunto de registros, modificando solo el registro actual, no debería haber parpadeo.
No tengo clara la necesidad de abrir un formulario para hacer cálculos con los datos del registro actual mediante otro formulario, los datos que se necesitan están en el formulario y registro activo (aun cuando sea un subformulario) que por muy continuo que sea y no lo aparente, solo tiene un registro (el activo).
Los que se necesiten externos pueden obtenerse con DLookup o un Recordset (depende de los datos a obtener), pero utilizar un formulario para hacerlos no lo creo necesario con la excepción de necesitar interactuar con ellos.
Según sea la interactuación con el oculto, este puede necesitar obtener el foco (solo se puede interactuar con un objeto que este activo) y ello causa el parpadeo (al 'saltar' entre ambos formularios).
Para hacer cálculos solo se precisan datos, si es imprescindible un formulario será porque se requieren mas datos que no se pueden obtener por otros medios (por ejemplo el tipo de cliente para adjudicarle un descuento que no esta catalogado), pero es solo una suposición que nace de la falta de información.
En los formularios (que tienen un origen de datos) se puede acceder a todos los datos que contiene mediante la copia oculta que se crea al abrirlos (el 'RecordsetClone') y mediante él, manipular todos los registros sin desplazarse ni incordiar al registro actual.
No hace falta declararlo (nace con el formulario) y es una copia fiel de su contenido, incluso permite crear nuevos registros en tiempo de ejecución, editarlos ... etc.
SI puedes publicar/ampliar la metodología de lo que has programado, se podrán analizar alternativas (que sin formularios ocultos pueden ahorrar tiempos muertos, en definitiva aumentar el rendimiento.