查询子表单和总和中的数据

时间:2013-03-24 10:39:02

标签: ms-access sum subform

我有三张桌子:

Products(ID,Name,Price) / 
Customer(ID, Name, Surname)
Buys(ID, ID_customer, ID_product)

我有一个包含子表单的表单。使用Buys表中的查询填充子表单,然后通过ID_customer连接到Customer(ID)。 ID和ID_customer隐藏在子窗体上。

然后我在子窗体上添加了两个字段/控件:Name和aPrice,它们通过ProductsQuery填充:

SELECT Products.Name, Products.Price
FROM Products
WHERE (((Products.ID)=[Forms]![PregledKupcev-Form]![NAKUPI-Subform]![ID])); 

//在这种情况下,ID是对包含产品ID的子表单的控制

使用:

=DLookUp("[Name]";"[ProductsQuery]")

=DLookUp("[Price]";"[ProductsQuery]")

到目前为止一切正常但是当我尝试总结一个控件(本例中的价格)时,它给了我很多麻烦。

有没有办法更好地做到这一点?

然后我尝试将aPrice控件中的内容总结为子窗体页脚上的PriceSum控件:

=Sum([Forms]![PregledKupcev-Form]![NAKUPI-subform]![aPrice])

并将其转移到表格中:

=[Forms]![PregledKupcev-Form]![NAKUPI-subform]![PriceSum]

但我收到错误..

如何在子窗体的价格控制中总结值?

图片: Form

1 个答案:

答案 0 :(得分:1)

假设您的主窗体有一个名为txtInvoiceNo的文本框,您可以在其中显示发票编号(或任何字段将您的父表链接到您的子表)。

我们还要说您的主窗体有一个名为txtInvoiceTotal的文本框,您希望在其中显示每个子记录的[Pri​​ce]值的总和。

txtInvoiceTotal文本框的控件来源设置为在子表(我称之为DSum())上执行InvoiceLineItems

=DSum("[Price]","InvoiceLineItems","InvoiceNo=" & [txtInvoiceNo])

在子表单的After Update事件中,在.Requery父表单的txtInvoiceTotal文本框中添加一行:

Private Sub Form_AfterUpdate()
Me.Parent.txtInvoiceTotal.Requery
End Sub

看看这对你有用。