複数フィルタ設定
ホームズAさんから、コメントを頂いたので、私のやっている複数項目のフィルターをご紹介します。
ホームズAさんのされようとしているフィルター処理のお役に立つかは判りませんが?
こんな検索項目を設定し、
検索項目が入力されているか判定しながら、SQL文を繋いでいき、出来あがったSQLでフィルター処理をしています。
”AND”で繋いでいくので、最初の"1=1"が肝です。
【SQL文】←【VBA記述】に変更します。(13.04.11)
StrSQL = "1 = 1"
If IsNull(Me.txt_件名) = False Then
StrSQL = StrSQL & " AND 件名 like '*" & Trim(Me.txt_件名) & "*'"
End If
If IsNull(Me.txt_品名) = False Then
StrSQL = StrSQL & " AND 品名 like '*" & Trim(Me.txt_品名) & "*'"
End If
If IsNull(Me.txt_科目) = False Then
StrSQL = StrSQL & " AND 科目 like '*" & Trim(Me.txt_科目) & "*'"
End If
If IsNull(Me.txt_店名) = False Then
StrSQL = StrSQL & " AND 購入場所 like '*" & Trim(Me.txt_店名) & "*'"
End If
If Me.Ch_金額 = True Then
StrSQL = StrSQL & " AND 金額 >100000"
End If
If IsNull(Me.nen) = False Then
If IsNull(Me.tuki) = False Then
StrSQL = StrSQL & " AND 日付 > #" & DateAdd("d", -1, Format(Me.nen & "/" & Me.tuki & "/01", "yyyy/mm/dd")) & "# And 日付< #" & DateAdd("m", 1, Format(Me.nen & "/" & Me.tuki & "/01", "yyyy/mm/dd")) & "#"
Else
StrSQL = StrSQL & " AND 日付 > #" & DateAdd("d", -1, Format(Me.nen & "/01/01", "yyyy/mm/dd")) & "# And 日付< #" & DateAdd("yyyy", 1, Format(Me.nen & "/01/01", "yyyy/mm/dd")) & "#"
End If
Else
If IsNull(Me.tuki) = False Then
StrSQL = StrSQL & " AND 日付 Like '*/" & Me.tuki & "/*'"
End If
End If
Me.Filter = StrSQL
Me.FilterOn = True
« 自転車本舗 蕨店 | トップページ | 引出し完成 »
「Access 業務管理」カテゴリの記事
- お客様宅の緯度経度情報(2018.07.24)
- モジュールとメインフロー(2018.03.01)
- 受注情報の登録パターン(2017.10.11)
- 懸案は解決しましたが、PCが不調です。(2017.10.08)
- コンボボックスのリスト外入力からの振り仮名取得(2017.10.07)
コメント
« 自転車本舗 蕨店 | トップページ | 引出し完成 »
こんにちは(^^)/
昨日はプログ作成メ切りトラブル やぼ用が+α 食品買物 そして 今日は病院行き+ウォキング14000歩 ブログ訪問者Data入力 その他終了して やっと 訪問出来ました。
私の為に記載して頂きありがとうございます。
でも はSQLは あつかったことがないので理解は難しいです。VBAも怪しいですが
今まで SQLはパスしていましたので、コードをコピーして参考書で勉強します。
ありがとうございました。m(_ _)m
投稿: ホームズA | 2013年4月11日 (木) 16時24分
ホームズAさん
コメントありがとうございます。
私も、SQLは苦手です。
SQL文を考える時は、一旦クエリーを作成して、SQLビューで確認して、VBAにカットアンドペーストしています。
クエリーにするより、VBAの中で見通しが良くなるののと、こんな風に条件で変更できるので、使わざるを得なくなった感じです。
投稿: あのこら | 2013年4月11日 (木) 16時56分
あのこらさん
返信コメントありがとうございます。( 訪問を忘れていました(^_^;) )
SQLは クエリで変換出来るを 思い出しました。当時はクエリで出来ることが なんでSQL 蛇足と思いストップでした。
そもそも複数フイルタ使用は、婚礼写真撮影で 60余名の人全員に写真を焼き付け配布するのに(今まで好意的に こちらか一方的に実施)Accessと他のアプリで各写真を60名に選択出来るプログラムを作成しました。
が、フォーム数が多くなりそれぞれが データ又クエリが相違して 1フォームを訂正すると他の多数を訂正で もう大変でした。 SQL使用して 1フォームで出来るのでは・・・です。
これから挑戦していきます。
ありがとうございました。 またよろしく ホームズA
投稿: ホームズA | 2013年4月15日 (月) 12時21分