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

Posted

技术标签:

【中文标题】基于一个查询生成多个类似的报告 - MS Access【英文标题】:Generating multiple similar reports based on one query - MS Access 【发布时间】:2012-08-02 21:50:03 【问题描述】:

我正在尝试从 MS Access 2010 中的一个查询中生成一些相关的直方图。我有两列,一个目标大小和一个实际测量值。我需要按目标大小拆分每个直方图,以便非常清楚哪些测量值是异常值,哪些实际上是另一个目标大小分组的一部分。

我有一个表格,您可以在其中指定您有兴趣查看的目标尺寸,然后是一个查询,将其与其他表格连接起来,得出目标尺寸列表和实际测量值。

例如

+-----------+--------+     +-----------+
| tgtHeight | Height |     | tgtHeight |
+-----------+--------+     +-----------+
| 900       | 984    |     | 900       |
| 900       | 910    |     | 1600      |
| 1600      | 1744   |     +-----------+
| etc...    |        |
+-----------+--------+

是否可以告诉报告仅在 VBA 或 SQL 中选择 tgtHeight = 900 的第一个表中的值(以我不必为每个 tgtHeight 直方图创建新报告的方式)?

【问题讨论】:

【参考方案1】:

OpenReport 方法包含一个 where 参数。

DoCmd.OpenReport "ReportName", acViewPreview,,"tgtHeight =900"

http://msdn.microsoft.com/en-us/library/office/bb238032(v=office.12).aspx

【讨论】:

谢谢 Remou,我最终使用了 open args 参数,我似乎无法让 WHERE 参数起作用。我现在的问题是多次打开同一个报告,因为默认情况下它不起作用。 使用 Where 参数会更好,多个报告会更容易。你有什么问题?你使用了什么 OpenArgs,你是如何处理它们的? 我遇到的问题是,无论我作为 WHERE 子句发送什么,处理和绘制的数据都是相同的。这是图表对象的“行源”SQL: SELECT tblBins.bin_name AS bin_name, Sum(Log.height IS NOT NULL) * -1 AS [Count] FROM tblBins LEFT JOIN qryHeightByTgtHeight ON (qryHeightByTgtHeight.height = tblBins.bin_min) 按 bin_name 分组; 我使用的 OpenArgs 只是所需的整数 tgtHeight。然后我用它来填充我的 binSize 表,虽然现在我想起来了,这还不够,我需要 WHERE 参数才能工作...... 我猜它可能不适用于图表,我没有测试过。过去,我通过修改图表所基于的查询的sql,然后运行图表来修改图表。对于多个图表,这可能是一个更简单的选择。它肯定会允许您使用正确的 where 语句。

以上是关于基于一个查询生成多个类似的报告 - MS Access的主要内容,如果未能解决你的问题,请参考以下文章

MS Access:自定义报告生成

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

查询未在MS-Access中使用日期条件

通过 VBA 自动使用查询从 Ms Access 2007 生成报告

基于表的 MS Access 报告引发“查询太复杂”错误

MS 访问报告