2016-08-12 129 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