Como sumar un valor inicial de un campo de una tabla a otro campo de otra tabla y que se acumule el
Una vez calculado el dato este valor se puede visualizar o guardar dependerá de la utilización de el, si se necesitara para efectuar cálculos posteriores lo adecuado es guardarlo, pero teniendo en cuenta que si se corrige un valor 'histórico' se ha de recalcular la historia a partir de ese punto para tener datos reales.
Como anotación: la función DSum utiliza un origen de datos (Dominio) y este ha de ser consistente, esto es, si estamos introduciendo en un formulario un nuevo registro y en uno de sus campos esta el dato que deseamos añadir, el DSum solo tomara los datos que estén en la tabla (datos consistentes) sin tener en cuenta al que deseamos añadir en el formulario (el del formulario mientras no se guarde el registro a todos los efectos 'no existe', existirá cuando se salve).
Esto es: para guardar un nuevo registro en el que aparezca el dato nuevo y la suma acumulada se debería hacer así:
Me.[suma acumulada] = Me.[dato nuevo] + DSum( …….. conjunto de datos anteriores = histórico …. )
En este entorno:
..- [dato nuevo] al que se introduce en el formulario y aun no existe en la tabla (aun no esta salvado)
.. [suma acumulada] el campo que contiene el dato calculado y al que se le asignara el valor
También se podría acceder al registro anterior, tomar su valor y utilizarlo en lugar de la función DSum, pero una mínima restricción (por ejemplo un filtro) podría provocar un error (el ultimo del conjunto en el formulario con el filtro activo) podría no corresponderse con el verdadero ultimo de la tabla (el mayor del histórico).
Al respecto de enviarme datos … gracias por la confianza, pero limito mi colaboración a este entorno aportando mi experiencia (lo otro seria trabajo y esa etapa ya esta cubierta).