在 ms 访问中将记录源分配给子报表

Posted

技术标签:

【中文标题】在 ms 访问中将记录源分配给子报表【英文标题】:assigning recordsource to subreport in ms access 【发布时间】:2016-06-24 10:22:02 【问题描述】:

我有一个报表,里面有两个子报表。主报表的记录源是根据条件变化的。为此,我在指向报告的按钮的 onclick 中包含了 if 条件,如果为真,我已使用此代码打开报告 DoCmd.OpenReport "rptPMLOGSHEET", acViewPreview, , LinkCriTeRia, , "Query1_filter"

然后在主报告的 Open 事件中,我包含了以下代码:

If Len(Me.OpenArgs & "") > 0 Then
    Me.RecordSource = Me.OpenArgs
End If

这很好用。现在子报表的记录源也取决于一个条件...在子报表的报表打开中,我直接传递了记录源

如果条件=真 Me.recordsource="查询名称"

这可以很好地打开报告,但是一旦我单击箭头转到第二页,就会出现一个错误,提示“运行时错误 2191-您无法在打印预览中或打印开始后设置记录源属性' 和调试器引导

Me.recordsource="Query name"

有什么方法可以保留打印预览功能,同时还可以运行报告? 我尝试将代码放入报告加载事件中,但报告没有给出正确的结果。 也欢迎任何替代方法。 感谢帮助

【问题讨论】:

【参考方案1】:

将代码行移至主报表:

If condition = True Then
    Me!YourSubreportControlName.Report.RecordSource = "Query name"
End If

【讨论】:

以上是关于在 ms 访问中将记录源分配给子报表的主要内容,如果未能解决你的问题,请参考以下文章

使用条件控制源控制报表中的每条记录

MS Access - 在设计时添加未绑定字段

在当前报表之外访问文本框控件源

从 SQL 的数据中将数据添加到报表中。微软访问

报表中的访问使用查询

如何在 MS-Access 97 中以编程方式访问报表工具栏