如何在Access数据库中添加基于日期与整数计算的动态列
嘿,这个需求在Access里其实很好实现,主要有两种常用方式,取决于你是要在查询里生成这个动态列,还是在表单/报表里直接展示:
方法1:在查询中创建计算字段(最常用)
如果需要把这个动态计算的日期作为数据源(比如给报表、表单用,或者导出数据),用查询的计算字段是最优解——它会自动跟着Column A和Column B的变化更新结果,完全动态。
具体步骤:
- 打开你的查询设计视图,把包含Column A和Column B的表添加进去
- 在字段行的空白列里,直接输入这样的表达式:
计算日期: DateAdd("d", [Column B], [Column A]) - 这里解释下:
DateAdd是Access里专门用来计算日期偏移的函数,第一个参数"d"表示按天计算,第二个参数[Column B]是要添加的天数,第三个[Column A]是基础日期 - 点击运行查询,就能看到你想要的结果了——比如你举的例子,Column A是10/20/2017、Column B是5,计算出来就是10/25/2017
方法2:在表单/报表中添加计算控件
如果只是要在界面上展示这个动态日期,不需要把它作为查询的一部分,可以直接在表单或报表里加个计算控件:
操作步骤:
- 打开表单/报表的设计视图
- 拖一个文本框控件到合适的位置
- 选中这个文本框,在右侧的属性面板里找到控件来源,输入:
=DateAdd("d", [Column B], [Column A]) - 可以把文本框的标签改成“计算日期”之类的,方便识别
- 切换到窗体视图(或报表预览),就能实时看到动态计算的结果了
一些注意事项
- 要确保Column A是Access的「日期/时间」类型,Column B是「数字」类型(整数型最好),不然
DateAdd会报错 - 如果Column B的值是负数,这个函数也能正常工作,会得到往前推N天的日期
- 不建议把这个计算结果直接存储到表中(属于冗余数据,容易因为原始数据更新导致不一致),用上面的动态计算方式就够啦
内容的提问来源于stack exchange,提问作者Jai
相关产品推荐
相关产品推荐

