Access 2016中基于双条件的DSUM函数使用问题求助
解决Access窗体DSum汇总控件为空的问题
问题根源分析
你当前的DSum公式存在三个关键错误:
- 条件语句未关联有效匹配逻辑,只是判断空字符串,导致无匹配记录
- 带连字符的字段名(如
Column-A、Column-B、Column-Amounts)未用方括号包裹,Access会将连字符识别为减号运算符,引发语法错误 - 公式中误用字段名
Amounts,实际目标字段是Column-Amounts
修正后的公式
情况1:匹配表中Column-A与Column-B值相等的记录
如果要汇总tbl-Reserves表中所有Column-A等于Column-B且Column-Amounts不为0的记录总和,公式应为:
=Nz(DSum("[Column-Amounts]", "tbl-Reserves", "[Column-A] = [Column-B] AND [Column-Amounts] <> 0"), 0)
情况2:匹配当前窗体记录的Column-A/Column-B值与表中对应字段相等的记录
如果要基于窗体当前记录的Column-A/Column-B值(假设窗体数据源包含这两个字段),汇总表中对应匹配的记录总和,公式调整为:
=Nz(DSum("[Column-Amounts]", "tbl-Reserves", "[Column-A] = " & [Column-A] & " AND [Column-B] = " & [Column-B] & " AND [Column-Amounts] <> 0"), 0)
注:如果Column-A/Column-B是文本类型,需在值前后添加单引号:"[Column-A] = '" & [Column-A] & "'"
额外验证步骤
- 确认
tbl-Reserves表中确实存在Column-A等于Column-B且Column-Amounts不为0的记录,否则Nz函数会返回0(避免控件显示为空) - 检查字段名拼写完全一致,包括大小写和特殊符号
内容的提问来源于stack exchange,提问作者Datamint
相关产品推荐
相关产品推荐

