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 的子报表的主要内容,如果未能解决你的问题,请参考以下文章
将 Access 表日期值作为参数传递给 SQL Server 存储过程