PR

Accessで複数条件を使った絞り込みフォームを作ろう!

Access
スポンサーリンク

こんにちは、Access大好きブロガーのなかぜんです。

「複数の条件でデータを絞り込めるようにしたいけど、どう作ればいいの?」「VBAって必要なの?」と悩んでいませんか?

実は、Accessではフォームを使って複数の条件でデータを絞り込む仕組みを作ることができます。業務でよく使う「検索画面」や「一覧フィルター」なども、ちょっとした工夫で簡単に作れるんですよ。

この記事では、初心者でもステップを追えば作れる「複数条件での絞り込みフォーム」の作り方を、やさしく丁寧に解説していきます!

スポンサーリンク

複数条件で絞り込むフォームの構成イメージ

以下のようなイメージのフォームを作っていきます。

  • 「顧客名」「商品名」「受注日」など、複数の検索条件を入力
  • 「検索」ボタンでデータを絞り込み
  • 「すべて表示」ボタンでフィルター解除

ステップ1:テーブルとクエリの準備

① サンプルテーブル「T_受注データ」

以下のようなテーブルを例にします:

  • ID(主キー)
  • 顧客名(テキスト型)
  • 商品名(テキスト型)
  • 受注日(日付/時刻型)

② 絞り込み用クエリ「Q_受注検索」

抽出条件には、フォームからの値を使えるようにします。

SELECT *
FROM T_受注データ
WHERE
  ([Forms]![F_受注検索]![txt顧客名] Is Null OR 顧客名 Like "*" & [Forms]![F_受注検索]![txt顧客名] & "*")
  AND ([Forms]![F_受注検索]![txt商品名] Is Null OR 商品名 Like "*" & [Forms]![F_受注検索]![txt商品名] & "*")
  AND ([Forms]![F_受注検索]![txt受注日] Is Null OR 受注日 = [Forms]![F_受注検索]![txt受注日]);

ポイント:各条件に「Is Null OR …」を入れることで、空欄でも検索できるようになります。

ステップ2:検索フォームを作成しよう

① 新しいフォーム「F_受注検索」を作成

以下のコントロールを配置します:

  • テキストボックス:txt顧客名
  • テキストボックス:txt商品名
  • テキストボックス:txt受注日
  • コマンドボタン:cmd検索
  • コマンドボタン:cmdすべて表示

② ボタンにVBAコードを設定

検索ボタンのVBAコード:

Private Sub cmd検索_Click()
    Me.Requery
End Sub

解説:フォームのレコードソースが「Q_受注検索」になっていれば、このコードでフォームが再表示され、条件に応じて絞り込まれます。

すべて表示ボタンのVBAコード:

Private Sub cmdすべて表示_Click()
    Me.txt顧客名 = Null
    Me.txt商品名 = Null
    Me.txt受注日 = Null
    Me.Requery
End Sub

解説:入力欄をクリアして再表示することで、全件表示が可能になります。

注意点とよくあるミス

  • フォーム名やテキストボックス名のスペルミスに注意
  • クエリ実行時に「入力パラメータの値を入力してください」と出たら、名前の参照ミスの可能性大
  • 日付の比較には「=」ではなく「Between」などを使うと柔軟性アップ

応用ポイント(中級者向け)

① コンボボックスで選択式にする

よく使う項目はコンボボックスにすることで、ミスを減らし操作性アップ!

② SQL文をVBAで動的に組み立てる

Dim strSQL As String
strSQL = "SELECT * FROM T_受注データ WHERE 1=1"

If Not IsNull(Me.txt顧客名) Then
    strSQL = strSQL & " AND 顧客名 Like '*" & Me.txt顧客名 & "*'"
End If

If Not IsNull(Me.txt商品名) Then
    strSQL = strSQL & " AND 商品名 Like '*" & Me.txt商品名 & "*'"
End If

Me.RecordSource = strSQL
Me.Requery

メリット:条件が増えても柔軟に対応できます。

まとめ:フォームで業務効率アップ!

今回は、Accessで「複数条件による絞り込みフォーム」を作る方法をご紹介しました。

  • フォームに入力欄を作ってクエリに連携
  • 検索ボタンで簡単にフィルター
  • VBAで柔軟な対応も可能!

業務で検索が必要な場面では、今回のテクニックがとても役立ちます。

ではまた、Accessライフを楽しんでくださいね♪ なかぜんでした!

bookfan 1号店 楽天市場店
¥2,992 (2025/05/05 08:01時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング