MS Access:尝试在表单中的多个字段中执行DSum(),但不会按条件

时间:2017-06-05 23:39:50

标签: ms-access ms-office datasheet ms-access-forms

我正在尝试创建一个从某些字段中获取总和并将其显示在其相应字段名称旁边的表单。我已在datasheet form(如何显示)及其design form附加了相关图片。

更详细地说,左边的描述项是"字段" (我将从现在开始打电话给"标签"并将列在名为关联出价项的列中的其他表格中)。我在我的Access应用程序中基本上标记了表和查询中的其他几个项目。我正在尝试使用相同的标签/字段收集所有项目,并将与这些项目相关联的总MH (工时)单位相加。

我在第二张图片的第二个文本框中的代码是:

=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]=[Text_BidItem].Value")

总MH 是我总结的结果, qry-PipingHandleMH 是我提出的查询, Text_BidItem 是第二个图像中的第一个文本框。我想仅总结总MH ,其中关联出价项(列出标记的其他表格中的列)与 Text_BidItem 匹配。

现在问题:其他表和查询中的几个项目已经使用第一张图片中显示的每个标记进行了标记。第一张图片中的每个描述/标签都应与总MH 相关联。上面的SQL代码不会将总数正确分成适当的行,如第一张图片所示。这是代码的较长版本:

=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-PipingMakeupMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-PipingValvesMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-PipingWeldingMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-CoatingAGMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-CoatingUGMH","[Associated Bid Item]=[Text_BidItem].Value")

基本上相同的代码应用于不同的表但添加在一起。那是真的在目前第二张图片的第二个文本框中。正如您在第一张图片中看到的那样,它全部应用于"大口径管道2"更大的"行。为什么总MH 的总和不分成各自的行? DSum()正在工作,但过滤和分离是完全错误的。

1 个答案:

答案 0 :(得分:0)

必须连接变量参数。对Text_BidItem的引用是一个变量参数。

=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]=" & [Text_BidItem])

如果[相关出价项目]是文本类型,那么将需要撇号分隔符:

=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]='" & [Text_BidItem] & "'")

在命名约定中不建议使用空格或标点符号/特殊字符(仅限下划线异常)。