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

MS Access: Trying to do DSum() across multiple fields in a form but it won't filter by criteria

我正在尝试创建一个表单,从某些字段中获取总和并将其显示在相应的字段名称旁边。我在 datasheet form (how it's displayed) and its design form.

中附上了它的照片

更详细的,左边的描述项是"fields"(以后我会叫"tags",会列在其他表里的[=25=栏目里) ]相关投标项目)。我基本上在我的 Access App 中标记了表格和查询中的其他几个项目。我正在尝试收集具有相同 tags/fields 的所有项目并添加与这些项目相关的 总 MH(工时)单位。

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

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

其中 Total MH 是我总结的内容,qry-PipingHandleMH 是我从中提取的查询,Text_BidItem 是第二张图片中的第一个文本框。我只想求和 Total MH,其中 Associated Bid Item(列出标签的其他表格中的列)匹配 Text_BidItem.

现在的问题是:其他表和查询中的几个项目已经用第一张图片中显示的每个标签进行了标记。第一张图片中的每个 descriptions/tags 都应该有一个与之关联的 Total 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")

基本上相同的代码应用于不同的表,但加在一起。这是当前第二张图片中第二个文本框中的内容。正如您在第一张图片中看到的那样,它全部应用于 "Large Bore Piping 2" 和更大”行。为什么 Total MH 的总和不分离到其各自的行中?DSum () 工作正常,但过滤和分离完全错误。

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

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

如果 [Associated Bid Item] 是文本类型,则需要撇号分隔符:

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

建议在命名约定中不要使用空格或 punctuation/special 个字符(下划线除外)。