複数フィールドをAND条件で抽出するIF文の書き方
説明
表形式のフォームにおいて、複数のフィールドに条件を付けて該当レコードを抽出したい場合に便利な方法。
実例と抽出のプロシージャ
- 次は抽出対象フォーム。[検索]ボタンをクリックする。
- 抽出用のフォームが表示される。条件を入力した。この例では「契約物件名」と「起案部署」のみを指定した。
検索したい語の一部を含めば良い仕組みになっている。次に[抽出実行]ボタンをクリックする。
- 抽出実行され、指定した条件に合うレコードのみが表示されている。
- 作成手順については省略して、抽出用フォームの[抽出実行]ボタンに記述したプロシージャについてのみ以下に
記載する。
Private Sub Btn_Search_Click()
Dim strSearch As String
strSearch = ""
If Txt_契約番号 <> "" Then
strSearch = "(契約番号 Like '" & Txt_契約番号 & "*')"
End If
If Txt_契約物件名 <> "" Then
If strSearch <> "" Then strSearch = strSearch & " AND "
strSearch = strSearch & "(契約物件名 Like '*" & Txt_契約物件名 & "*')"
End If
If Txt_起案部署 <> "" Then
If strSearch <> "" Then strSearch = strSearch & " AND "
strSearch = strSearch & "(起案部署 Like '*" & Txt_起案部署 & "*')"
End If
Forms!F_契約リスト.Filter = strSearch
Forms!F_契約リスト.FilterOn = True
Forms!F_契約リスト.AllowAdditions = False
End Sub
(この項終わり)