如何在拆分表单视图中从子表单获取准确的总计,当前需要在总计正确之前选择每个记录

问题描述 投票:1回答:1

我正在为应付账款的对账过程建立一个系统。我设置了一些表来输入我们每天得到的票据组,然后在我们收到发票之前记录它们。

我有一些表提供有关表中某些字段的信息,但关键表是:

Ticket_Group:

  • TGID(自动编号)
  • Ticket_Date
  • SupplierID(原材料供应商的唯一标识符)
  • ShipperID(航运公司分类的唯一标识符)
  • MaterialID(材料的唯一标识符)
  • gl_dep(总帐部门)
  • mat_inv_rec(如果收到材料发票,则为true / false)
  • freight_inv_rec(如果收到运费发票,则为真/假)

票:

  • TID(每张票的自动编号)
  • TGID(Ticket_Group中的TGID链接,许多TID到一个TGID)
  • 数量(材料数量)

我想要做的是查看Ticket_Group中仍未收到发票的所有记录。但我还需要查看总数,以便我能正确匹配它们。不完全是进行AP对帐的理想方式,但它比我们目前的做法要好得多(伪透视表与供应商和托运人组合在一侧和月份的顶部和个别票据作为值加在一起)每个细胞)。

我现在拥有Ticket_Group表和Ticket子表单的splitform。我在子窗体的页脚中放了一个sum([qty])并在mainform中引用了该字段。这只有一半是因为总数在单个表单视图中是正确的,但数据表视图显示所选记录总数作为所有记录的总和,直到选择了每个单独的记录。

我想也许每个记录循环的表单的onload事件可能会起作用,但我认为必须有更好的方法。

我是MS Access的超级新手,所以我非常感谢你的帮助!

sql database ms-access ms-access-2016
1个回答
0
投票

参考Subform-Field无法工作,因为它引用了mainform的实际(选定)记录。这就是为什么“数据表 - 视图”显示所有记录的主要形式的实际选定记录的值,因为只有一个具有caclulated字段的子表单根据主表单记录而变化,而不是主表单的每个记录的新表单。

要获取数据表视图中的值,请从表中获取它,而不是子表单。

例如。将TextBox的Control-Source设置为:

=DSum("qty","Ticket","TGID = " & Ticket_Group.TGID)

或者将表达式添加到yourForm.RecordSourceas中,如下所示:

Select Ticket_Group.TGID, Ticket_Group.Ticket_Date, ... , DSum("qty","Ticket","TGID = " & Ticket_Group.TGID) as SumQty FROM Ticket_Group

使表单可编辑。

或加入

Select TGID, Sum(qty) As SumTicketQty FROM Ticket Group By TGID

使用您的mainform的查询,然后将其绑定到mainform,但这会导致只读查询。

© www.soinside.com 2019 - 2024. All rights reserved.