내가 가진 것은 회사 정보와 연락처 정보를 보여주는 여러 연락처 하위 양식 (연락처 작업 책임이 구분 된)으로 구분 된 양식입니다.여러 개의 체크 박스가있는 양식 필터링
업무상 책임을 표시하는 회사 양식에 콤보 상자가 있으며, 책임을 선택하면 선택한 책임 담당자에게 회사 기록 만 표시됩니다. 이것은 코드입니다.
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''If Me.Check194 = True와 Me.Check199 = True와 Me.Check205 = True Then Me.Filter = "cedit <= Date() - 90 및 copt = '아니요'이고 exsite는 null입니다." 저. FilterOn = True Else Me.Check194 = True 및 Me.Check199 = True 및 Me.Check205 = False 인 경우 Me.Filter = "cedit <= Date() - 90 및 copt = '아니요'" Me.FilterOn = True Else'code' 조언 주셔서 감사합니다! – Adamcantvba