私は会社情報を表示するフォームと、連絡先情報を表示する複数の連絡先サブフォーム(連絡先の職責(タブ))を分けて表示します。複数のチェックボックスを含むフォームのフィルタリング
私は仕事の責任を表示する会社のフォームにコンボボックスを持っています。責任を選択すると、選択した責任の連絡先の会社のレコードのみが表示されます。これはコードです。
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