Otro ejemplo. Si tengo una tabla Bodegas con unas existencias(para comodidad le pongo a todas lo mismo)

Y tengo una tabla Movimientos con la que hago un formulario. Da igual si es único o continuo, pero continuo se ve mejor.

Escribo una fecha y selecciono una bodega saliente

En el momento que selecciono una bodega, en este caso Norte en AntesS me pone las existencias que tiene hasta ese momento.

El cursor se va a cantidad. Escribo una (puedes ver que el cursor aún está en Cantidad). En el momento que pulso Enter

Me pone las nuevas existencias de la bodega saliente, me actualiza la tabla Bodegas. En el combinado Bodega Entrante sólo me muestra las bodegas distintas de la saliente. Y en el momento que selecciono una

en Eentrante me pone las nuevas existencias de la bodega entrante. Y si seguimos

El código de los diferentes eventos es
Private Sub BodegaEntrante_AfterUpdate()
AntesE = DLookup("existencias", "bodegas", "nombrebodega='" & Me.BodegaEntrante & "'")
EEntrante = AntesE + Cantidad
DoCmd.RunSQL "update bodegas set existencias=antese+cantidad where nombrebodega='" & Me.BodegaEntrante & "'"
End Sub
Private Sub BodegaSaliente_AfterUpdate()
AntesS = DLookup("existencias", "bodegas", "nombrebodega='" & Me.BodegaSaliente & "'")
Cantidad.SetFocus
End Sub
Private Sub Cantidad_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
ESaliente = AntesS - Cantidad
DoCmd.RunSQL "update bodegas set existencias=existencias-" & Me.Cantidad & " where nombrebodega='" & Me.BodegaSaliente & "'"
BodegaEntrante.SetFocus
End Sub
Pero puedes hacerlo de mil formas distintas