0
我所擁有的是一種顯示公司信息和多個聯繫人子窗體的窗體,顯示聯繫人信息,由聯繫人的工作職責(選項卡)分開。使用多個複選框篩選表單
我在公司的表格上有一個顯示工作責任的組合框,一旦選擇了一個責任,它將只顯示公司記錄和所選職責的聯繫人。這是代碼;
Sub SetFilter()
Dim ASQL As String
If IsNull(Me.cboshowcat) Then
' If the combo and all check boxes are Null, use the whole table as the RecordSource.
Me.RecordSource = "SELECT company.* FROM company"
Else
ASQL = "SELECT company.* FROM company INNER JOIN Contacts ON company.company_id = Contacts.company_id WHERE Contacts.responsibility= '" & cboshowcat & "'"
Form_Startup.RecordSource = ASQL
End If
End Sub
公司表將僅顯示與在cboshowcat組合框中指定類型的聯繫人記錄,而不顯示在主窗體上重複的公司。
然後,我想根據主窗體上的複選框應用一些其他過濾器,這些複選框與聯繫人子窗體上的字段有關。這些由一個按鈕以及上面的記錄源代碼激活;
Private Sub Command201_Click()
If Nz(Me.cboshowcat) = "" And Me.Check194 = True Or Nz(Me.cboshowcat) = "" And Me.Check199 = True Or Nz(Me.cboshowcat) = "" And Me.Check205 = True Then
MsgBox "Please Select a Job Responsibility"
Cancel = True
Else
SetFilter
If Me.Check194 = True Then
Me.Filter = "cedit <=Date()-90"
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
If Me.Check199 = True Then
Me.Filter = "((copt)='No')"
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
If Me.Check205 = True Then
Me.Filter = "exsite is null"
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
End If
End If
End If
End Sub
在按鈕濾除按類別選定的聯繫人的時刻,但如果超過1複選框的檢查它僅使用一個過濾器。我如何使用多個過濾器組合取決於哪個複選框被打勾?
感謝您的回答,我已經有大約一齣戲,並意識到,我只能一次應用過濾器。例如; 'code'如果Me.Check194 = True且Me.Check199 = True且Me.Check205 = True然後 Me.Filter =「cedit <= Date() - 90和copt ='No'且exsite爲null」 Me。 FilterOn = True Else 如果Me.Check194 = True並且Me.Check199 = True並且Me.Check205 = False然後 Me.Filter =「cedit <= Date() - 90和copt ='No'」 Me.FilterOn = True Else'code'感謝您的建議! – Adamcantvba