我有一个报告(ReportX),我希望从我的数据库中的两个不同的表单(FormA 和 FormB)中打开。我希望这样做,因为 FormA 和 FormB 处理我数据的不同方面,即使它们最终得到相同的输出。ReportX 基于来自 QueryX 的数据。
我遇到的问题是 QueryX 理想情况下会根据当前表单中的当前 RecordID 过滤数据。但我不知道如何做到这一点。我想设计 QueryX,以便 RecordID 的标准本质上是 CurrentForm!RecordID,但研究表明我不能这样做。我必须对每个表格进行单独但相同的查询和报告吗?或者当我单击 OpenReportX 命令按钮时,有没有办法使用 VBA 来定义查询条件?
我已经尝试在 OpenReport 命令中使用 WHERE 条件:
DoCmd.OpenReport "ReportX", acViewPreview, ,"RecordID = " & RecordID
但这并没有显示我希望的结果。我需要显示/打印每个 RecordID 的报告标题和页脚中的页数,以仅反映相关 RecordID 的当前/总页数。(换句话说,如果记录 1 是一页,记录 2 是两页,记录 3 是三页,那么 ReportX 在显示记录 2 的第一页时,应该说“Page 1 of 2”而不是“Page 2 of 6.") 因此,能够使用记录过滤器正确显示和打印单个记录也可以解决我的问题。
哪个是最不麻烦/最可能的解决方案?