2016-08-12 36 views
0

我有一个带子窗体和几个选项组的窗体。在访问中结合了两个选项组

它工作正常,选择1个单一选项组, 子窗体上的记录,但我试图结合两个或更多的选项组。

我使用1个选项组验证码:

Dim strFilter As String 

Select Case [Frame26] 
Case 1 
    'Forms!YourFormName.Form.FilterOn = False 
Case 2 
    'strFilter = "[YourFieldName] = 'Open - Normal' Or [YourFieldName] = 'Open - Urgent'" 
    'Forms!YourFormName.Form.Filter = strFilter 
    'Forms!YourFormName.Form.FilterOn = True 
case3 

恩茨.....

+0

待办事项与第二帧相同的东西 - 只需从第二个筛选器(strFilter2)获得结果并在应用它之前将它们连接到第一个strFilter。 'strFilter = strFilter&strFilter2' – dbmitch

回答

0

这里的例子实现你的第二个选项框:

Dim strFilter As String 
Dim strFilter2 As String 

Select Case [Frame26] 
Case 2 
    strFilter = "[YourFieldName] = 'Open - Normal' Or [YourFieldName] = 'Open - Urgent'" 
case3 
'............ 

End Select 

' Add second filter - replace all your logic and fields to fit second options 
Select Case [Frame<##>] 
Case 2 
    strFilter2 = "[YourFieldName] = 'Open - Normal' Or [YourFieldName] = 'Open - Urgent'" 
case3 

if strFilter = "" AND strFilter2 = "" Then 
    Forms!YourFormName.Form.FilterOn = False 
    Exit Sub 
End If 

If strFilter <> "" AND strFilter2 <> "" then 
    ' Join both filters 
    strFilter = "(" & strFilter & ") AND (" & strFilter2 & ")" 
Else If strFilter2 <> "" then 
    ' Just Using second filter 
    strFilter = strFilter2 
End if 

Forms!YourFormName.Form.Filter = strFilter 
Forms!YourFormName.Form.FilterOn = True 
+0

它似乎工作正常。我应该在哪里放置最好的;点击或更新后。 – Adri

+0

我会使用按钮“更新过滤器”并添加到单击事件而不是AfterUpdate,这样您就不会在每个选项组被选中并更改之前更新过滤器 – dbmitch