複数フィールドをAND条件で抽出するIF文の書き方

説明

表形式のフォームにおいて、複数のフィールドに条件を付けて該当レコードを抽出したい場合に便利な方法。

実例と抽出のプロシージャ

  1. 次は抽出対象フォーム。[検索]ボタンをクリックする。
  2. 抽出用のフォームが表示される。条件を入力した。この例では「契約物件名」と「起案部署」のみを指定した。 検索したい語の一部を含めば良い仕組みになっている。次に[抽出実行]ボタンをクリックする。
  3. 抽出実行され、指定した条件に合うレコードのみが表示されている。
  4. 作成手順については省略して、抽出用フォームの[抽出実行]ボタンに記述したプロシージャについてのみ以下に 記載する。
    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

(この項終わり)