Access双表子报表-字符串Where



我有一个关于报告的快速问题。我有一个报表,它有两个未绑定的子报表(数据来自两个不同的数据库,不共享任何信息。我通常通过使用一个简单的UI来单独打开这些报表,以选择不同的选项并生成一个字符串来打开报表,即

DoCmd.OpenReport str_rptname, acViewReport, , strWhere

strWhere由UI 生成

现在我已经将它们组合成一个报告,字符串where不起作用。是否可以将where字符串传递给子窗体?如果是的话,我该怎么做呢?有其他更好的方法吗?

谢谢!

据我所见,正如您在评论中所写的那样,您正确地指出了问题:

我相信这是因为打开主报告的字符串在那里设置筛选器,但子报表未绑定为打开状态未过滤

因为子报表是未绑定的,所以需要给它们一个完整的记录集,而不仅仅是WHERE子句。像这样:

dim whereClause As String
dim strRecordset as String
'***Build your where clause
strRecordset = _
  "SELECT yourColumns " & _
  "FROM yourTables " & _
  "WHERE " & whereClause
Me.subreport.recordset = strRecordset
Me.subreport.Requery

重新查询可能是可选的。

最新更新