« 自転車本舗 蕨店 | トップページ | 引出し完成 »

2013年4月 9日 (火)

複数フィルタ設定

ホームズAさんから、コメントを頂いたので、私のやっている複数項目のフィルターをご紹介します。

ホームズAさんのされようとしているフィルター処理のお役に立つかは判りませんが?

Kensaku こんな検索項目を設定し、
検索項目が入力されているか判定しながら、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 業務管理」カテゴリの記事

コメント

こんにちは(^^)/

昨日はプログ作成メ切りトラブル やぼ用が+α 食品買物 そして 今日は病院行き+ウォキング14000歩 ブログ訪問者Data入力 その他終了して やっと 訪問出来ました。

私の為に記載して頂きありがとうございます。
でも はSQLは あつかったことがないので理解は難しいです。VBAも怪しいですが

今まで SQLはパスしていましたので、コードをコピーして参考書で勉強します。

ありがとうございました。m(_ _)m


ホームズAさん
コメントありがとうございます。
私も、SQLは苦手です。

SQL文を考える時は、一旦クエリーを作成して、SQLビューで確認して、VBAにカットアンドペーストしています。

クエリーにするより、VBAの中で見通しが良くなるののと、こんな風に条件で変更できるので、使わざるを得なくなった感じです。

あのこらさん

返信コメントありがとうございます。( 訪問を忘れていました(^_^;) )

SQLは クエリで変換出来るを 思い出しました。当時はクエリで出来ることが なんでSQL 蛇足と思いストップでした。

そもそも複数フイルタ使用は、婚礼写真撮影で 60余名の人全員に写真を焼き付け配布するのに(今まで好意的に こちらか一方的に実施)Accessと他のアプリで各写真を60名に選択出来るプログラムを作成しました。
が、フォーム数が多くなりそれぞれが データ又クエリが相違して 1フォームを訂正すると他の多数を訂正で もう大変でした。 SQL使用して 1フォームで出来るのでは・・・です。

これから挑戦していきます。

ありがとうございました。 またよろしく ホームズA


コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 複数フィルタ設定:

« 自転車本舗 蕨店 | トップページ | 引出し完成 »

関宿町周辺の自転車屋MAP

千葉県内出張修理店情報

自転車出張修理のブログ

自転車修理法の疑問はこちらへ

カテゴリー

無料ブログはココログ