Accessのフォームでテキストボックスから簡単にデータを絞り込む方法


Accessフォームで、テキストボックスに数字を入れるだけでデータを絞り込める方法を知りたい方向けの記事です。

営業日やIDでサッとレコードを絞りたいとき、コマンドボタンを使わずにスムーズに操作できます。Access初心者でもすぐ試せます。

業務管理テーブルにある業務の履歴管理をする方法〜SQLとVBA履歴追加する」のテーブルを使った例です

目次

フォーム例

やりたいこと
  • テキストボックスに営業日の数字を入力すると、その営業日のデータだけを表示
  • 空欄にするとフィルターが解除され、全件表示に戻る

フォームの元になるクエリ名:Q1_TaskHistoryJoin

※これは T1_Tasks と T2_History を結合したクエリです。

Q1_TaskHistoryJoin

動作

第5営業日を抽出する例

テキストボックスに「5」と入力し、Enterキーを押します。

営業日が「5」のデータのみ表示します。

解除する場合は、テキストボックスの文字を消し、Enterキーを押します。

テキストボックスで営業日をフィルターする

STEP
テキストボックスをフォームに配置

名前:txtDayNo(←自由ですが例としてこれ)

STEP
フォームをデザインビューで開き、テキストボックスを選択 (非連結)

テキストボックスの名前:「txtDayNo」

STEP
プロパティシートのイベントタブの更新後処理よりコードビルダーを選択
STEP
コードを記述
Private Sub txtDayNo_AfterUpdate()
    If Trim(Nz(Me.txtDayNo, "")) = "" Then
        Me.FilterOn = False  ' 空欄ならフィルター解除
    Else
        Me.Filter = "DayNo = " & Me.txtDayNo
        Me.FilterOn = True   ' 営業日でフィルター
    End If
End Sub
目次