マイクロソフトアクセスで広がる世界

アクセスのTIPS集

期間抽出方法−条件設定フォームで特定期間のレコードを抽出します−

概要

日付型フィールド(契約日など)を持っているフォームにおいて、特定期間のレコードのみを抽出する方法です。
期間設定には専用フォームを設け、 入力された条件に合うレコードをクエリで抽出します。
次の図は仕組みのイメージです。

    (ポイント)
  • 条件設定フォームを使う。
  • 抽出条件を入れたクエリを作成し、メインフォームのレコードソースにする。

作成手順

備品管理のシステムをモデルにした使用例です。

  1. メインとなるリストフォーム
    ・フォームの名前:[F_備品リスト]  レコードソース:[T_備品マスタ]
    ・表示フィールドは[code番号][品名][型番][取得日]の4フィールドとなっています。
    ・抽出は[取得日]の特定期間(オレンジ枠)にします。

    ・フッタ部にコマンドボタン「抽出」1と「抽出解除」2を設置します。
    「抽出」ボタンの名前:[Cmd_抽出]
    「抽出解除」ボタンの名前:[Cmd_抽出解除]

  2. 期間設定用のフォームの作成
    @非連結フォームを作成します。フォーム上に二つのテキストボックスと二つのコマンドボタンを設置し、それぞれ次の名前にします。
    テキストボックス1 名前:[Txt_開始日付] 書式:日付 (S)
    テキストボックス2 名前:[Txt_終了日付] 書式:日付 (S)
     コマンドボタン3 名前:[Cmd_実行]
     コマンドボタン4 名前:[Cmd_閉じる]

    Cフォーム名:[F_期間設定]にして保存します。


  3. クエリーの作成
    抽出用のクエリを作成します。メインフォームのレコードソースとして使用するものです。
    @テーブル[T_備品マスタ]から[code番号][品名][型番][取得日]の4フィールドを取り出します。
    A抽出フィールドに期間設定フォームの日付を参照する式を入れます。
    式(オレンジ枠)の内容


    Bクエリの名前を[Q_期間抽出]として保存します。
  4. コマンドボタンのプロシージャ割り当て
    @メインフォームのコマンドボタン[Cmd_抽出]
    役割は期間設定用フォームの表示です。また、レコードソースを[Q_期間抽出]に切り替えも行わせます。イベントはクリック時。
    プロシージャの内容

    Aメインフォームのコマンドボタン[Cmd_抽出解除]
    役割は、レコードソースを元の[T_備品マスタ]に切り替えることです。イベントはクリック時。
    プロシージャの内容

    B期間設定用フォームのコマンドボタン[Cmd_実行]
    役割は、メインフォームのレコードソースをメインフォームの再クエリです。イベントはクリック時。
    プロシージャの内容

    C期間設定用フォームのコマンドボタン[Cmd_閉じる]
    役割は、フォームの閉じることです。イベントはクリック時。
    プロシージャの内容

(この項終わり)