Access 2007 中的 SQL 查询有效,但在报表中的表达式生成器中无效(结果为 #name?)

Posted

技术标签:

【中文标题】Access 2007 中的 SQL 查询有效,但在报表中的表达式生成器中无效(结果为 #name?)【英文标题】:SQL query in Access 2007 works, but not when in expression builder in report (results in #name?) 【发布时间】:2011-02-15 20:35:16 【问题描述】:

我在 MS Access 2007 中有一个名为“test”的已保存查询。

SELECT Count(system_info.id) AS CountOfUnique
FROM system_info;

所以当我运行它时,它会按预期返回 172。这确认查询运行正常。 表“system_info”是一个链接到 Excel 电子表格的表。当我对该表运行任何查询时,它们都在查询视图(数据表)中工作。

但是,当我尝试在报告中引用该查询结果时,它不起作用! 这就是我的工作

    创建新的空白报告 创建一个文本框 单击“...”按钮启动表达式生成器 使用表达式生成器,选择查询并插入结果=[test]![CountOfUnique]

当我运行报告时,文本框有#Name?在里面。 我已经用谷歌搜索死了这个问题,有人认为当查询返回零记录时,它可能是 MS Access 2007 的一个错误。但是,我知道它返回一个!其他人建议更改文本框的名称,因为它可能与其他内容发生冲突。即使该文本框在一个全新的报告中是独立的,它仍然无法正常工作。

我要扯头发了!!我可以在其他表上使用相同的方法并且我看到了数字,但似乎只是这个 system_info 表在报告中不起作用。有没有我错过的地方?

感谢您提供任何信息

【问题讨论】:

您的报告的记录来源是什么?另外,您对 Access 报告的经验水平如何? 我的访问报告级别是最低的 - 我正在不断完善它!我上次使用的是 Access 97 ......所以是不久前的事了!它正在慢慢恢复。 【参考方案1】:

在文本框中输入:

=DlookUp("CountOfUnique","Test")

还要检查 DCount。

【讨论】:

您不能在文本框中按名称引用查询,DLookUp 是一个域聚合函数,它会为您运行查询。您可以使用 VBA 和记录集,但在这种情况下,域聚合函数可能是最好的。 太好了 - 非常感谢!我实际上只是从我的主报告中删除了一个子报告,而我的另一个文本字段返回了#Name? - 很明显,如果有一个子表单,那么源数据就完成了,所以引用它就可以了。 Dlookup 很棒 - 非常感谢! 我刚刚在另一个表上尝试了相同的 DLookup 函数。这个返回一个简单地计算记录的查询。 '=DLookUp("CountOfOrgName","customer_list QUERY count records")' 当我尝试执行相同的 DCount 时,它也会返回 #Error。有什么想法吗?! @HansUp 我测试过,因为这就是我的想法,但对于域聚合函数来说并非如此。 @Remou 我现在也明白了……空格在这里并不重要。一定是我对名字中空格的反感导致我误入歧途。 :-)

以上是关于Access 2007 中的 SQL 查询有效,但在报表中的表达式生成器中无效(结果为 #name?)的主要内容,如果未能解决你的问题,请参考以下文章

Access 2007 中的报告和图形 - 计算查询值

MS Access 2007 SQL 查询出现问题

access2007数据库用SQL语句查询时间段内的数据

在 MS Access 2007 中对 ODBC 表导入 sql 查询

在 Access 2007 SQL 中的 Group By 聚合函数中计数 Distinct

如何在 MS Access 2007 中获取 sql 查询