我已经在Access 2013中创建了一个用于项目管理的基本数据库。在其中,我设置了一个名为Project-properties的主表,其中包含项目ID作为唯一标识符,以及项目属性的其他字段。该表通过1:n连接链接到另一个名为Invoices的表,该表保存与一个唯一项目对应的所有发票。
然后,我继续创建一个基于Project-properties的表单。在此表单上,我想显示一个文本域,显示与所选项目对应的所有发票的总和。
想象一下,我有10张发票,分布在4个项目中,每张10K美元,总共10万美元。我希望在表单中显示的只是对应于的发票的总和,假设项目ID为01。在Invoices表中,只有3个报价对应于这个项目ID,每个报价$10k,所以前面提到的文本字段应该显示$30k。
我已经尝试了=Dsum('InvoiceSum';'Invoice'),但我只得到了所有项目的总和10万美元。
发布于 2020-04-10 17:21:59
DSum (和相关的域查找函数)有第三个参数,允许您指定筛选器。
如果项目字段是一个字符串,那么您可以使用如下内容:
=DSum("InvoiceSum","Invoice","ProjectID='ID01'")如果你想让过滤器依赖于一个变量,那么这将变成:
Dim strProject As String
strProject="ID01"
=DSum("InvoiceSum","Invoice","ProjectID='" & strProject & "'")如果这是窗体上的控件,并且项目ID是数字,则只要窗体的记录源中包含ProjectID,就可以将其用作文本框的控件源:
=DSum("InvoiceSum","Invoice","ProjectID=" & ProjectID)致以敬意,
https://stackoverflow.com/questions/61137240
复制相似问题