> 分割フォームでキーワード検索を複数の条件で抽出したいです。
> ひとつの検索ボタンで、それぞれの項目を入力した際の
> AND検索、に変更したいです。
> (記入しなかった場合はその項目は無視する)
とりあえず、[標題]プロパティの値が「抽出」である
コマンドボタンの名前が[cmd_filter]であると仮定した場合。
(フォームモジュール)
'コマンドボタン[cmd_filter]の[クリック時]イベント
Private Sub cmd_filter_Click()
Dim strFilter As String
'[ベッドNo]の条件の指定
If Nz(Me![ベッドNo検索], "") <> "" Then
strFilter = strFilter & _
" AND ([ベッドNo] = '" & Replace(Me![ベッドNo検索], "'", "''", , , vbBinaryCompare) & "')"
End If
'[点検内容]の条件の指定
If Nz(Me![点検内容検索], "") <> "" Then
strFilter = strFilter & _
" AND ([点検内容] Like '*" & Replace(Me![点検内容検索], "'", "''", , , vbBinaryCompare) & "*')"
End If
'[作業日]の範囲条件(最小値)の指定
If IsDate(Me![作業日検索1]) Then
strFilter = strFilter & _
" AND ([作業日] >= #" & Format(Me![作業日検索1], "yyyy/mm/dd") & "#)"
End If
'[作業日]の範囲条件(最大値)の指定
If IsDate(Me![作業日検索2]) Then
strFilter = strFilter & _
" AND ([作業日] <= #" & Format(Me![作業日検索2], "yyyy/mm/dd") & "#)"
End If
'先頭の" AND "を取り除く
strFilter = Mid(strFilter, 6)
'フィルター条件の設定
Me.Filter = strFilter
'フィルターの実行 (もしくは解除)
Me.FilterOn = (strFilter <> "")
End Sub
以上のようなイベントプロシージャを追加なさればよろしいかと。