1

对不起,如果这个问题很简单,但我用谷歌搜索并没有找到满意的答案。

我正在创建一个工程成本估算器。我有一个将输入作为ISO/Drawing的表单,并且对于每个图纸编号都有许多子表单,您可以在其中输入ComponentDesc并且应该吐出TotalHours以完成编号。我已经附上了一张图片(抱歉质量不好)

从图像中,底部的表格是数据表模式下的子表格(通常隐藏并位于页脚中),它将为输入到右侧子表格中的ComponentDesc计算适当的Total MH(工时) 。我希望左侧的小(且不完整)文本框(在标题“ISO/图纸的 MH 总计”下方)显示底部子表单的汇总总计。

我一直在尝试使用 DSUM() 为文本框定义控制源,但它不断返回 #ERROR,如左侧文本框中所示。现在我输入的是:

=DSum("[Total MH]","frm-PipingHandleMH")

在表达式生成器中。[Total MH]是我的字段,frm-PipingHandleMH是底部的子表单。我试图在所有东西周围加上括号,但它没有用(即使我不确定括号通常是做什么的)。有什么建议吗?

4

1 回答 1

0

DSum(和所有域聚合函数)作用于表或查询。如果要使用该方法,则需要引用该表单的源并使用过滤器参数来限制 IE 的适当记录,如果表单的数据源是 qry-PipingHandles 并且您当前尝试求和的表单正在显示小部件 4 的句柄则类似于:

=dsum("[Total MH]","qry-PipingHandles","[widgetID] = 4")

请注意,如果 4 是表单的当前状态,那么您需要将其传入,例如:

=dsum("[Total MH]","qry-PipingHandles","[widgetID] = " & [frm-PipingHandlesMH]![WidgetID].Value)

您在表单中引用该字段并将其附加到作为过滤器应用到 Dsum 源的字符串上。

另一种方法是将小计放在表单的页脚中(iirc,您实际上不需要显示页脚),然后从父表单引用该页脚控件。

需要括号来区分包含空格或其他奇数字符的名称,它们也可用于(例如在查询设计视图中)强制 Access 将某些内容视为名称而不是字符串文字。

于 2017-06-01T16:34:04.437 回答