使用数据表表单过滤器过滤报告

时间:2016-05-30 15:07:57

标签: ms-access access-vba ms-access-2013

问题:我使用查询创建了数据表表单。我使用相同的查询来生成报告。当我过滤数据表格式然后打开我的报告时,表单的过滤器不会影响我的报告。

要实现的目标:我希望在报告和过滤后的形式中看到相同的数据。

问题:将数据表格表单过滤器应用于我的报告是否有一些技巧?

重要提示:我无法在表单中使用未绑定字段来过滤查询。它必须是“Excel like”过滤的想法。我的意思是,用户应该能够在数据表表单的每一列中单击小三角形,从列表中选择一些数据然后打开报表。报告应“记住”表单的过滤器设置。

1 个答案:

答案 0 :(得分:1)

报告基于查询,因此您无法从数据库窗口/导航窗格中打开报告,并且可以根据打开表单上显示的内容轻松更改其源数据。 (有可能,但需要一些编码。)

您可以将表单作为子表单放在新的空白表单上,这样就可以添加一个按钮来预览报表。

该按钮将预览报告并包含Filter。此过滤器可以从子窗体当前使用的过滤器中复制:

Private Sub cmdPreview_Click()
    'Debug.Print Me.Controls("frmStaffFilter").Form.Filter
    DoCmd.OpenReport "rptStaffFilter", acViewReport, , Me.Controls("sbfStaffFilter").Form.Filter
End Sub

(这是使用Where参数,而不是命名过滤器,这是此前的参数。)

基于此,你可以实现我最初提到的。您可以使用Report的Open事件来首先检查Form(及其子表单)当前是否打开;然后通过调整上面的代码来阅读并应用子表单的过滤器。