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

时间:2016-06-24 10:22:02

标签: sql-server vba ms-access access-vba report

我有一份报告,其中有两个子报告。主报告的记录来源是根据条件的变化。为此,我在导致报告的按钮的onclick中包含if条件,如果为true,我已使用此代码打开报告     DoCmd.OpenReport“rptPMLOGSHEET”,acViewPreview,LinkCriTeRia,“Query1_filter”

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

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

这非常有效。现在子报表的记录源也依赖于一个条件......在子报表的打开报告中我直接传递了记录源

如果condition = true Me.recordsource =“查询名称”

这会打开报告,但是一旦我点击箭头转到第二页就会给我一个错误,上面写着'运行时错误2191-您无法在打印预览中设置记录源属性或打印开始后'和调试器导致

Me.recordsource="Query name"

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

1 个答案:

答案 0 :(得分:1)

将代码行移至主报告:

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