MS Access:将参数传递给不带 SQL 的子报表

Posted

技术标签:

【中文标题】MS Access:将参数传递给不带 SQL 的子报表【英文标题】:MS Access: Passing Parameter to Subreport w/o SQL 【发布时间】:2015-12-18 20:00:01 【问题描述】:

我正在尝试找到一种方法将参数从报表传递到子报表,而无需使用任何 SQL 代码或宏(我的同事是非技术人员,但偶尔仍必须使用 Access 数据库来运行报表对它们进行调整。)

我在 Microsoft Access 2013 中工作。我有一个表,其中包含投资列表以及这些投资所基于的状态。我有一个查询,它根据用户输入的状态参数提取有关投资的数据.然后我运行两个报告:一个简单地列出按不同类别分组的投资,第二个报告将投资类别汇总到一个表格中。我已将摘要报告作为子报告放在详细报告的顶部,但我想将 State 参数从主报告传递到子报告,这样用户就不必输入两次。不用编写任何 SQL 代码或宏,这是否可能?

谢谢!

【问题讨论】:

【参考方案1】:

认为我理解你想要做什么,但如果我的回答没有意义,请补充细节。

您可以通过引用传递用户输入的信息 [数据库对象类型]![对象名称]![字段名称]。

如果用户从表单中输入 State 值,您可以参考: [表格]![表格名称]![状态] 其中 FormName 是表单的名称,State 实际上是包含 State 值的 Form 控件的名称。

如果用户在查询的提示中输入 State 值,您可以参考: [查询]![查询1]![状态] 其中 Query1 是从用户那里获取状态信息的初始查询的名称,“State”是该字段的名称。

您将这些引用放入您的辅助查询或报告中:

    例如,在第二个查询中,您可以将 State 字段 Criteria(在查询设计视图中)设置为 = [Queries]![Query1]![State] 所以第二个查询将从第一个查询中提取 State 值

    在一个报告上,类似的想法 - 您可以将 State 控件(在 Properties 中)的 Control Source 设置为 = [Queries]![Query1]![State]

【讨论】:

由于某种原因,它一直让我输入 [Queries] 和 [Query1] 作为参数,而不是将它们识别为实际对象。因此,我在一个文本框中输入,例如:=[Queries]![Query1]![State]!然后它会提示我输入 [查询] 和 [查询 1] 的值。什么给了? 没关系,我想通了。我犯了一个我没有发现的简单拼写错误。感谢您的帮助!

以上是关于MS Access:将参数传递给不带 SQL 的子报表的主要内容,如果未能解决你的问题,请参考以下文章

MS Access,如何将参数传递给子查询?

如何将参数传递给 ms 访问以取回数据

将 Access 表日期值作为参数传递给 SQL Server 存储过程

如何将参数传递给不带字符串的函数(Pyspark)

将 unicode 参数传递给 ShellExecuteEx 中的子进程

SwiftUI 参数传递给不带参数的调用