You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access 2016中基于独立表的双条件DSUM求和需求

Access 2016 基于COLUMN-A分组的DSUM求和实现

核心需求

对tbl-Reserves表中同一COLUMN-A值的所有COLUMN-AMT列求和,比如:

  • COLUMN-A=ABCDEFGHSDR的记录总和为$800
  • COLUMN-A=RRRRRRRRR2的记录总和为$95

实现方法

DSUM函数的语法为:DSum(要汇总的字段, 数据源, 筛选条件),核心是用COLUMN-A作为筛选条件,匹配同一值的所有记录。

1. 窗体中控件直接显示当前记录的分组总和

在frm-SavedCancellations窗体中添加一个文本框,设置其控件来源为:

=DSum("COLUMN-AMT", "tbl-Reserves", "COLUMN-A = '" & [COLUMN-A] & "'")
  • 说明:[COLUMN-A]会引用当前窗体记录的COLUMN-A值,自动筛选出同值的所有记录并对COLUMN-AMT求和。

2. 针对特定COLUMN-A值的固定求和

如果需要直接计算指定COLUMN-A的总和,可写死条件:

  • 计算ABCDEFGHSDR的总和:
=DSum("COLUMN-AMT", "tbl-Reserves", "COLUMN-A = 'ABCDEFGHSDR'")
  • 计算RRRRRRRRR2的总和:
=DSum("COLUMN-AMT", "tbl-Reserves", "COLUMN-A = 'RRRRRRRRR2'")

3. VBA代码中调用DSUM

如果要在VBA逻辑中获取求和结果,代码示例:

' 获取当前窗体记录对应的分组总和
Dim currentTotal As Currency
currentTotal = DSum("COLUMN-AMT", "tbl-Reserves", "COLUMN-A = '" & Me![COLUMN-A] & "'")

' 获取指定COLUMN-A的总和
Dim abcTotal As Currency
abcTotal = DSum("COLUMN-AMT", "tbl-Reserves", "COLUMN-A = 'ABCDEFGHSDR'")

Dim rTotal As Currency
rTotal = DSum("COLUMN-AMT", "tbl-Reserves", "COLUMN-A = 'RRRRRRRRR2'")

注意事项

  • COLUMN-A是文本类型,条件中必须用单引号包裹匹配值;若为数值类型则无需单引号。
  • 数据源可直接用基础表tbl-Reserves,也可用查询R-Totals,结果一致(因R-Totals基于tbl-Reserves)。

内容的提问来源于stack exchange,提问作者Datamint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:03:18