MS Access - 在 1 个报告中使用多个查询

Posted

技术标签:

【中文标题】MS Access - 在 1 个报告中使用多个查询【英文标题】:MS Access - using multiple queries in 1 report 【发布时间】:2011-06-21 21:57:55 【问题描述】:

我想在报告中使用的大型 MS Access (2007) 数据库中有大约 35 个查询。但是,我不想为每个查询创建报告,而是希望在一个报告中包含多个查询。 SO上与此相关的其他问题似乎与表有关,但我主要关心的是查询。

到目前为止,我已经查看了几种解决方案,但似乎都没有帮助:

1) DLookup - 返回一个值。我需要使用来自每个查询的许多值填充报表。

2) 子报表 - 我尝试创建文本框来链接我的查询数据,但由于它们未绑定,它不会让我这样做。

3) 对它大喊大叫。我一直对 Access 大喊大叫,但似乎没有帮助。

4) 一个巨大的查询从所有较小的查询中获取值 - 它无法识别我在较小查询中构建的表达式。示例:CustomerCount = DCount("[Customer_ID]","[Customers]")。错误:“CustomerCount”无法识别。

任何想法将不胜感激。

谢谢,

【问题讨论】:

当您创建巨型查询时,它是否列出了您创建的值?它说客户计数吗?您可以使用 CustomerCount 值发布较小的查询吗? +1 表示可能的解决方案 #3。当我使用 Access 时,我一直认为这应该会有所帮助。 我不明白这个问题。您希望将这些查询中的哪些类型的数据合并到一个报告中?请提供一些示例 SQL。否则,我不知道怎么会有人开始提供有用的建议。 @matt,Access 可以成为合适的人手和环境的完美工具。丑陋但敏捷。 @user247245 你可能把我误认为有人说 Access 在合适的人手和环境中不是完美的工具。 【参考方案1】:

如果您从一个由多个子查询组成的查询创建报告,您可以通过填充文本框来实现。如果查看报告 > 数据选项卡 > 控制源上的属性,您可以从巨型查询中放置子查询的名称,然后放置您想要的值。

例如:

Master query

    SELECT 
        [Deb<30].CountOfACCT_ID, [Deb<30].SumOfB001, 
        [Deb<60].CountOfACCT_ID, [Deb<60].SumOfB001, 
        [Deb<90].CountOfACCT_ID, [Deb<90].SumOfB001, 
        [Deb>90].CountOfACCT_ID, [Deb>90].SumOfB001, 
        TodaysHD.CountOfACCT_ID, TodaysHD.SumOfB001, 
        TodaysLD.CountOfACCT_ID, TodaysLD.SumOfB001, 
        Part.CountOfACCT_ID, Part.SumOfB001, 
    FROM [Deb<30], [Deb<60], [Deb<90], [Deb>90], TodaysHD, TodaysLD, Part;

FROM 部分中的每个项目都是被拉入主查询的子查询。然后在您的报告中,您将使用[Deb&lt;30].CountOfACCT_ID 或您需要的主查询中的任何值填充控制源。我在我的应用程序的多个报告中都有这个设置,所以它应该可以工作。

【讨论】:

【参考方案2】:

至于 2) 你应该能够绑定你的控件,你的子报表应该有一个记录源。

否则,试试列表框,它们的图形外观不太灵活,但它们可能会完成工作。

问候, //t

【讨论】:

以上是关于MS Access - 在 1 个报告中使用多个查询的主要内容,如果未能解决你的问题,请参考以下文章

MS ACCESS 报告 - 显示或隐藏“按标题分组”

密码保护 MS Access 报告文件

生成包含多个表/查询的 MS Access 报告

如何过滤 3 个文本框,然后在 MS Access VBA 中根据它们运行报告

基于一个查询生成多个类似的报告 - MS Access

如何在 MS Access 2007 中使用查询作为报告源?