表结构不合理,初期数和期末数都应该以查询方式来显示,表里只记录本期数和时间即可。因为本期数有可能更改,则对应的初期数和期末数都要变,而且多行记录都要修改,效果不好,容易出错。
SELECT 表.日期, IIf(IsNull(DSum("本期数","表","日期<#" & [日期] & "#")),0,DSum("本期数","表","日期<#" & [日期] & "#")) AS 初期数, 表.本期数, [初期数]+[本期数] AS 末期数
FROM 表;