如何使用表单中的组合框过滤报表中的多个字段

时间:2015-07-24 08:51:51

标签: ms-access report

情况:我根据我放在表单中的查询生成报告。我想要做的是创建4个组合框,用户可以从中选择过滤报告的选项,而无需离开表单或在单独的窗口中打开报告。

另外,我想让滤镜相互依赖,这意味着如果我在组合框1上选择选项A,我将在组合框2上选择的选项将仅基于组合框1上的早期滤镜。我道歉如果我我没有清楚地解释这一点。

问题:到目前为止,我能够完成至少2个组合框来过滤报告,但它们并不是基于首先用于过滤报告的组合。因此,如果我通过在组合框1上选择选项A来过滤记录,则组合框2仍将过滤每条记录。

以下是用于两个组合框的代码:

 
Private Sub cboLocation_AfterUpdate()
On Error GoTo Proc_Error

If IsNull(Me.cboLocation) Then
        Me.qrySalesByLocation.Report.Filter = ""
        Me.qrySalesByLocation.Report.FilterOn = False
        Me.qrySalesByLocation.Report.Requery
    Else
        Me.qrySalesByLocation.Report.Filter = "[Location]=" & Me.cboLocation
        Me.qrySalesByLocation.Report.FilterOn = True
    End If

Proc_Exit:
    Exit Sub
Proc_Error:
    MsgBox "Error " & Err.Number & " in setting subform filter:" & vbCrLf & Err.Description
    Resume Proc_Exit

End Sub

==========

Private Sub cboProduct_AfterUpdate()
On Error GoTo Proc_Error

    If IsNull(Me.cboProduct) Then
        Me.qrySalesByLocation.Report
        Me.qrySalesByLocation.Report.Filter = ""
        Me.qrySalesByLocation.Report.FilterOn = False
        Me.qrySalesByLocation.Report.Requery

    Else
        Me.qrySalesByLocation.Report.Filter = "[Product]=" & Me.cboProduct
        Me.qrySalesByLocation.Report.FilterOn = True
    End If

Proc_Exit:
    Exit Sub
Proc_Error:
    MsgBox "Error " & Err.Number & " in setting subform filter:" & vbCrLf & Err.Description
    Resume Proc_Exit

End Sub

=====

使用其他2个组合框,我无法应用相同的代码,因为输入参数对话框不断弹出。

提前感谢您的帮助!

0 个答案:

没有答案