Microsoft Access Club >初心者講座 >CDアルバム管理ソフト >このページ >次頁 - 前項


検索フォームの追加 : CDアルバム管理ソフト15



このソフトを完成させてからかなりの歳月が経ちましたので、ここいらで一つ新しい機能を追加いたしましょう。

追加コンテンツとして「検索フォーム」を追加します。この検索は、区分とランクごとにデータを抽出できるものです。機能的に特に目新しいものではないですが、あれば便利なものでしょう?

「frm_kensaku_1」フォームを元に作成しましょう。何かベースとなるものがあれば作成スピードが速いものです(笑い)。 出来上がりは、下記のようなフォームになります。(8/10の縮小図)

  1. 「frm_kensaku_1」フォームのコピーを「frm_kensaku_3」と命名して下さい。

  2. そしてこのフォームの上部にあるリストボックスを全て削除します。

  3. 入力フォームでは、「区分」(朝、昼、夜)と「ランク」(1〜5)のデータを入力していますので、これら条件で抽出可能な閲覧フォームの作成を目指します。

全体の考え方は、2つのオプショングループの「更新後処理イベント」にマクロを配置し、下部のリストボックスを再クエリするだけです。

当然、下部のリストボックスの「値集合ソース」にWhere条件を設定していますが…。

オプショングループの作成

では、作成に進みます。

  1. まず、オプショングループを作成して下さい。1個は「区分」選択(上図の青丸部分)を、他は「ランク」選択(上図の黄丸部分)に用います。

「ランク」は1から5までの数字でデータ入力していますから問題ないんですが、「区分」については 朝、昼、夜 という文字列でデータ保存して いるので、チョット問題ですね。

何故なら、オプショングループは数値で値が返されるからです。そこで、Switch関数を用いて数字に変換します。

  1. フレーム1は、区分のオプショングループの名前です。

  2. フレーム2は、ランクのオプショングループの名前です。

下部のリストボックス(上図の赤丸部分)の「値集合ソース」は下記のとおりです。

Like演算子 を用いて曖昧検索を行っています。これはフォームが開いた時に、全データを表示させるためです。表示させる必要がないなら、このLike演算子は不要です。

ラベルに抽出条件を表示

オプショングループの「どのボタン」がクリックされているのか、ラベルに表示させています。この原理も簡単ですよ。マクロを下記のようにしています。

「値の代入」の一例を挙げますと下記のようにしてます。

アイテム [Forms]![frm_kensaku_3]![ラベル1].[Caption]

式 "朝、聞くのに最適な曲を抽出しました…"

見た目と比べると、案外簡単な仕組みでしょう?

 

ページの先頭へ 前ページへ戻る


検索フォームの追加 : CDアルバム管理ソフト15


 

-Microsoft Access Club-