2016-05-30 89 views
1

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

什么是实现:我希望在我的报告和我的过滤形式中看到相同的数据。

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

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

回答

1

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

您可以将窗体作为子窗体放置在新的空白窗体上,以便添加按钮以预览报表。

该按钮可以预览报告并包含Filter

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


为主(这是用在哪里的说法,没有一个名为过滤器,这是在此之前的说法。):此过滤器可以从当前由子窗体使用复制对此,你可以实现我刚才提到的。您可以使用Report的Open事件来首先检查Form(及其子表单)是否当前处于打开状态;然后通过修改上面的代码来读取并应用子窗体的Filter。

+0

好吧,它花了一段时间,但最后我明白了。我替换了你的Where参数: Me.Controls(“sbfStaffFilter”)。Form.Filter by Forms!sbfStaffFilter.Form.Filter 现在它完美的工作。非常感谢您的帮助,Andy G :) – YourNick