【发布时间】:2013-11-22 21:40:37
【问题描述】:
我已经 8 年没有使用 Access 了——我相信我忘记的比我所知道的要多。有人要求我修改一份报告,以便当前显示所有图纸的图纸列表将列出特定客户(或所有客户)的图纸。
我找到了报表使用的嵌套查询,并修改了内部查询以接受一个参数(第一个错误?)。然后我添加了一个新表单来显示客户名称并检索关联的主键 customerId。现在我需要将表单中的客户 ID 提供给报告。 DoCmd.OpenReport 并添加 whereCmd 似乎与参数的 where 条件不匹配。
因此,我删除了查询中的参数,并尝试仅指定条件。只有外部查询不知道 customerId 是什么。我是否需要在内部查询和外部查询中公开它,然后不要在最终报告中使用它,以便我可以在 where 子句中过滤它?
他们还有其他示例代码,这些代码使用表单中的 VBA 在启动报表之前重建查询(添加任何过滤条件)。这肯定不是推荐的做法,对吗?
【问题讨论】:
-
" ... 在启动报告之前重建查询(添加任何过滤条件)" 该查询是否用作报告的记录源?
-
报表的记录源是外层查询,是的。但它是由外部查询调用的内部查询,它能够识别客户。该信息不是内部结果中的字段,因此在外部不可用,因此我认为我无法对其进行过滤。
-
根据我的阅读,过滤器优于参数查询。好的,我添加了它,我会收回它。但我无法让过滤器工作,我相信这是因为它不是报告记录源中的一个字段。那么,如果我将字段添加到内部查询和外部查询的字段列表中,是否必须在报表中使用?如果没有在报告中使用,我还能对其进行过滤吗?
-
您可以在报表的记录源中包含一个字段,而不是在任何报表控件中显示它。
-
您应该将其发布为答案。这是一种享受!
标签: ms-access