Filterの使い方|FilterOn|複数条件の設定方法|日付抽出|解除方法 - Access VBA入門

フォームでFilterを使用するサンプルです。Filterの実行方法、Likeで複数条件を設定する方法、Betweenで期間を抽出する方法、Filterを解除する方法を掲載します。

BackHome BackVBA入門

ここでは商品入荷一覧表フォームのフッターに商品コードを抽出する機能を追加します。


Filterの実行方法と解除方法

下のような商品入荷一覧表のフォームを作成しました。

フォームフッターの商品コードのテキストボックスに、商品コードを入力し[抽出]ボタンをクリックすると、その商品コードが抽出され表示できます。

[抽出解除]ボタンでFilterを解除できます。

Filterの実行と解除

[抽出]と[抽出解除]ボタンのクリックイベントのVBAです。

[抽出]と[抽出解除]ボタンのクリックイベントのVBA
  • Filterプロパティに抽出条件を設定します。
  • 文字列を抽出するには、「’」シングルクォーテーションで囲みます。
  • FilterOnプロパティをTrueにすると実行できます。
  • FilterOnプロパティをFalseにすると解除できます。

Private Sub コマンド14_Click()
    Me.Filter = "商品コード ='" & Me!テキスト11 & "'"
    Me.FilterOn = True
End Sub


Private Sub コマンド15_Click()
    Me.FilterOn = False
End Sub


入力した商品コードで抽出した結果のフォームです。

商品コードで抽出した結果のフォーム

[抽出解除]ボタンをクリックするとFilterが解除され、元の表示に戻ります。

Filterが解除されたフォーム

Filter Likeであいまい抽出する

一部の文字列が含まれる商品名を抽出するVBAです。

 一部の文字列が含まれる商品名を抽出するVBA

・あいまい抽出するには「*」アスタリスクを使ったワイルドカードを使用します。


Private Sub コマンド14_Click()
    Me.Filter = "商品名 Like '*" & Me!テキスト11 & "*'"
    Me.FilterOn = True
End Sub


抽出結果のフォームです。

抽出結果のフォーム

Filter Likeで、複数条件のあいまい抽出をする

入力した2つの商品名で抽出するVBAです。
2つの商品名で抽出するVBA

・ORを使用し、入力された商品名のどちらかが含まれるレコードを抽出します。


Private Sub コマンド14_Click()
    Me.Filter = "商品名 Like '*" & Me!テキスト11 & "*' or 商品名 Like '*" & Me!テキスト16 & "*'"
    Me.FilterOn = True
End Sub


商品名に「焼きそば」か「みそ」が含まれるレコードが抽出できました。

商品名に「焼きそば」か「みそ」が含まれるレコードが抽出できた

日付の期間で抽出する

期間で抽出するVBAです。

期間で抽出するVBA
  • ・期間で抽出するには、Between Andを使用します。
  • ・日付は「#」で囲みます。

Private Sub コマンド14_Click()
    Me.Filter = "入荷日 Between #" & Me!テキスト11 & "# AND #" & Me!テキスト16 & "#"
    Me.FilterOn = True
End Sub


入荷日の期間で抽出した結果です。

入荷日の期間で抽出した結果

BackHome BackVBA入門

Copyright(C) FeedSoft