Ms access 将报表值传递给查询

Ms access 将报表值传递给查询,ms-access,ms-access-2007,Ms Access,Ms Access 2007,我是Microsoft Access的新手,因为我的背景大多是.NET。我确信我想要完成的事情非常简单,但我需要一些指导。我有一份报告和一个问题。该查询基于单个数值条件返回单个数值 从id=[主题]的表格中选择总计 我已经在我的报告上放置了一个文本框,这样我就可以将id提供给这个查询,并作为回报获得总数。看起来DLookUp是我想要的,但无论我如何构造它,当我运行报告时,文本框中都会出现错误 目前,我的DLookUp看起来像这样,为了简单起见,我刚刚硬编码: =DLookUp("[total]"

我是Microsoft Access的新手,因为我的背景大多是.NET。我确信我想要完成的事情非常简单,但我需要一些指导。我有一份报告和一个问题。该查询基于单个数值条件返回单个数值

从id=[主题]的表格中选择总计

我已经在我的报告上放置了一个文本框,这样我就可以将id提供给这个查询,并作为回报获得总数。看起来DLookUp是我想要的,但无论我如何构造它,当我运行报告时,文本框中都会出现错误

目前,我的DLookUp看起来像这样,为了简单起见,我刚刚硬编码:

=DLookUp("[total]","myquery","[topic] = 3")
如何将报表字段中的值传递给查询,以便返回查询的单个数值


谢谢。

查询返回单个值,因此您不需要where语句,因此:

 =DLookUp("[total]","myquery")
如果要跳过查询,还可以使用DSum或DCount,然后需要where语句。另一个奇怪的问题是,当您对字段以外的任何对象使用与选定字段同名的控件时

编辑再评论

让我们假设你有一个疑问,阿奎里:

 SELECT ID, AField FROM ATable 
你可以说:

 =DLookUp("Afield","AQuery","ID=" & [ANumericReportField])

你也可以说:

 =DSum("ANumericField","ATable","ATextField='" & [ATextReportField] & "'")

查询返回单个值,因此不需要where语句,因此:

 =DLookUp("[total]","myquery")
如果要跳过查询,还可以使用DSum或DCount,然后需要where语句。另一个奇怪的问题是,当您对字段以外的任何对象使用与选定字段同名的控件时

编辑再评论

让我们假设你有一个疑问,阿奎里:

 SELECT ID, AField FROM ATable 
你可以说:

 =DLookUp("Afield","AQuery","ID=" & [ANumericReportField])

你也可以说:

 =DSum("ANumericField","ATable","ATextField='" & [ATextReportField] & "'")
如果您有一个名为myquery的查询,其参数名为topic:

您可以将myquery更改为:

那么你的DLookUp可能是这样的:

=DLookUp("[total]","myquery","id = 3")
然而,在这种情况下,myquery没有多大用处。你可以直接靠在桌子上

=DLookUp("[total]","table","id = 3")
如果不是3,而是要替换文本框中的值txtId,请尝试以下方法:

=DLookUp("[total]","myquery","id = " & Me.txtId)
顺便说一句,table不是表名的好选择。如果您有一个名为myquery的查询,并且有一个名为topic的参数,请参见:

您可以将myquery更改为:

那么你的DLookUp可能是这样的:

=DLookUp("[total]","myquery","id = 3")
然而,在这种情况下,myquery没有多大用处。你可以直接靠在桌子上

=DLookUp("[total]","table","id = 3")
如果不是3,而是要替换文本框中的值txtId,请尝试以下方法:

=DLookUp("[total]","myquery","id = " & Me.txtId)

顺便说一句,table不是表名的好选择。请参见

如何将条件值从报表传递到查询?这有点难说,因为我不确定主题在哪里,或者查询返回什么,但我将添加一个一般性说明。如何将条件值从报表传递到查询?这有点难说,因为我不确定主题是从哪里来的,或者您的查询返回了什么,但我将添加一个一般注释。查询是否返回报告中显示的记录总数?如果是这样,您真的不需要查询,或者根本不需要DSum或DLookup—您只需在报表的页脚中求和即可。查询是否返回报表中显示的记录总数?如果是这样,您真的不需要查询,或者根本不需要DSum或DLookup—您只需在报告的页脚中求和即可。