抽出フォームの作り方|あいあまい抽出・解除ボタン:Microsoft Access

Accessフォーム メニューへ

フォームに抽出文字を入力するテキストボックスとコマンドボタンを配置し、ボタンをクリックするとフォームに抽出結果を表示するVBAを作成します。さらに「あいまい抽出」と「抽出解除」を行うVBAも作成します。

ここで作成したサンプル データベース ファイルは無料でダウンロードできます。

スポンサーリンク


抽出フォームの元になる、都道府県の人口一覧のフォームです。
都道府県の人口一覧のフォーム

抽出文字入力用のテキストボックスと抽出コマンドボタンの挿入

ここではフォームヘッダー エリアに挿入します。
フォームをデザインビューで開き、リボンの[フォーム デザイン ツール]~[デザイン]~コントロール グループから、テキストボックスとコマンドボタンをフォームヘッダー内にドラッグし挿入します。
テキストボックスに付いてくるラベルは削除するか、標題を「抽出文字入力」などにしてください。
コマンドボタンの標題をプロパティシートで「抽出」にします。
フォームヘッダーにテキストボックスと抽出コマンドボタンを挿入する

1.抽出のコマンドボタンを選択します。
2.プロパティシートの[イベント]タブ~[クリック時]のコンボボックスで[イベント プロシージャ]を選択します。
3.[…]ボタンをクリックします。
[クリック時]のコンボボックスで[イベント プロシージャ]を選択する

VBAの入力画面になるので、下記のコードを入力します。
VBAの入力画面

Private Sub コマンド1_Click()
    Me.Filter = "都道府県名 ='" & Me!テキスト1 & "'"
    Me.FilterOn = True
End Sub

解説

Filterは抽出条件を設定するプロパティです。
構文 : Form.Filter="フィールド名=抽出条件"
上の場合抽出条件が文字列なので、「 ' 」でくくっています。これが日付の場合は「 # 」、数字の場合はいりません。
FilterOn = Trueで抽出を開始、Falseで解除します。

実行フォームです。
テキストボックスに「静岡県」と入力し、抽出ボタンをクリックすると、フォームには都道府県名が静岡県のレコードのみが表示されます。
テキストボックスに「静岡県」と入力し、抽出ボタンをクリックする

あいまい抽出の実行

あいまい抽出を行うVBAです。
あいまい抽出を行うVBA

Private Sub コマンド1_Click()
    Me.Filter = "都道府県名 like '*" & Me!テキスト1 & "*'"
    Me.FilterOn = True
End Sub

解説

FilterにLike演算子を使用し、あいまい検索にしています。
抽出文字列の前後の「*」アスタリスク(半角)は、ワイルドカードと呼ばれ何でもOKのマークになります。
これにより、都道府県名にテキストボックスに入力した文字が含まれている、全てのレコードを抽出することができます。

実行フォームです。
抽出文字に「島」と入力し抽出すると、「島」が含まれるレコードが表示されました。
抽出文字に「島」と入力し抽出した結果のフォーム

抽出の解除

抽出ボタンの横に解除ボタンを追加し、プロパティ シートから「イベント プロシージャ」を選択します。
抽出ボタンの横に解除ボタンを追加する

抽出を解除するVBAです。
上で解説したように、FilterOn を False にすると解除され、全レコードが表示されます。
抽出を解除するVBA

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


サンプル データベース : 無料ダウンロード

スポンサーリンク


Accessフォーム メニューへ

Copyright (c) Microsoft-Access.net All rights reserved.