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


検索・抽出フォームの作成と解説_1 : CDアルバム管理ソフト07



一週間近くのご無沙汰でした。お気に入りのアーティストCDの入力は大分進みましたか?今回からは、入力済みのデータの検索・抽出を行うフォームを作成していきます。テーブルデータをそのまま閲覧するのは情けないですからね。

検索・抽出フォームの作成

では、検索・抽出のフォームを2種類作成しましょう。

  • コンボボックスを使ったフォーム

  • リストボックスを使ったフォーム

コンボボックス、リストボックス共に、それ程変わりはないですが、皆さんの勉強のためにもこの機会に覚えられた方がいいと思います。

 コンボボックスを使ったフォームの仕組み(フォーム名:frm_kensaku_2 )
  1. 「コンボ1」に「tbl_main」をデータソースとして"アーティスト名"を表示させ、

  2. 更新後処理で「コンボ2」にその値を引き渡し、

  3. 「コンボ2」は引き渡された"アーティスト名"を抽出条件として

  4. 「tbl_main」をデータソースとして"タイトル名"を表示させます。

  5. 次に、フォームの基になっているクエリに

  6. 「コンボ2」で選択した"タイトル名"を抽出条件として、

  7. 帳票フォームに該当のデータ表示を行います。

ちょっとややこしいかな。

それでは、実際にフォームを作成しましょう。

  1. フォーム作成ウィザードで オートフォーム:表形式 を選択します。

  2. 基になるテーブルには、tbl_subテーブルを指定して下さい。

  3. 出来上がったフォームを下記のように修正してください。

修正個所は、下記のとおりです。

  1. 全てのテキストボックスプロパティの「使用可能」を"いいえ"、「編集ロック」を"はい"にする。

  2. 全てのテキストボックスの横幅を調整する。

  3. 全てのテキストボックスの立体表示、背景スタイル、文字配置を適宜調整する。

  4. フォーム全体のフォントサイズを 10 にする。

  5. フォーム全体の「スクロールバー」を"なし"、「レコードセレクタ」と「移動ボタン」を"いいえ"、「ポップアップ」と「作業ウィンド固定」を"はい" にする。その他、適時調整する。

  6. フォームヘッダーに「コンボボックス」を2個作成する。名前は左から"コンボボックス1"、"コンボボックス2"とする。

  7. 2個の「コンボボックス」のプロパティで「入力チェック」を"はい"とする。

注意

上記サンプルのように、フォームフッターが見えない状態で修正フォームを保存すると、次回のフォーム表示には3つぐらいのデータしか表示されなくなります。よって保存するデザインビューは、フォームフッターの高さを"0"にし、必要なスペースを確保した状態で保存してください。

これは帳票形式のフォームでは大事なことです。

言葉足らずなのでサンプルファイルを用意しています。「sample_1」と「sample_2」をフォームビュー及びデザインビューで見比べてください。

特に今回は"コンボボックス"を2つ連動させますので、この点を詳しく後々解説します。

 

コンボボックスの組み込み-1

それでは、左側のコンボボックス「コンボ1」を組み立てていきましょう。あ、コンボボックスは作成しただけでは何にも役に立ちませんよ。

まず、コンボボックスプロパティのデータ欄にある「値集合ソース」にテーブル「tbl_main」を選択し、ビルダーを起動させクエリを作成します。そして、下記のようにセッティングして下さい。

  • なお、集計クエリを用いていますので、ご注意ください。

「集計」欄にある”カウント”は、「アーティスト名」フィールドにあるデータの中で多い順に一覧を表示させる工夫です、覚えて置いてね。ここまでできれば「コンボ1」は完成です。

重要

下記のプロパティの中で、とくに今回重要なのは「連結列」です。この項目は、コンボボックスに複数列が表示されている場合(今回は"アーティスト名"の一列だけですから既定値の"1"で結構です。)に、”何列目の値を返す(渡す)のか”を決める列を指定するところです。"1"とは左から1列目との意味です。

 

 

コンボボックスの組み込み-2

次に、右側のコンボボックス「コンボ2」を組み立てていきましょう。このコンボボックスの値集合ソースには、テーブルtbl_mainを基にしたクエリを作成します。

そして重要なことは、コンボボックス「コンボ1」で選択した文字列が、コンボボックス「コンボ2」の抽出条件として用いられていることです。よって、プロパティの「値集合ソース」には下記のようなクエリを作成して下さい。

  • クエリデータの抽出だけに使用するクエリフィールドは「表示」欄のチェックを外します。不要な フィールドは表示しないという気合が大事です。

コンボボックスの組み立てはこれで完了です。

これら一連の流れは、下記のようにまとめることができます。

  1. コンボボックス「コンボ1」から「コンボ2」へ抽出条件(ここでは"アーティスト名")が移り、

  2. この「コンボ2」で選択した項目(ここでは"タイトル名")名を抽出条件として、

  3. 最後にフォームの「詳細部分」にデータが表示される。

 

フォームのレコードソースにクエリを作成

次に、基になるフォームのレコードソースにクエリビルダを起動させ、下記のクエリを作成します。

作成方法は、下記のとおりです。

  1. フォームのレコードソースに「tbl_main」を表示させます。
  2. 「...」をクリックします。
  3. "テーブルを基にして クエリ ビルダが起動されました。
  4. このテーブルを基にしてクエリを作成しますか?"のメッセージが表示されますので、"はい"をクリックします。
  5. クエリのデザインビューが開きますので、右クリックで現れるメニューの中から「テーブルの表示」をクリックします。
  6. テーブルの表示ダイアログが現れますので、「tbl_sub」をクリックし「追加」ボタンをクリックして下さい。
  7. すると、「tbl_main」と「tbl_sub」はリレーションで結ばれているのが見えますね。
  8. 後は、テーブルのフィールドをクエリフィールドにドラッグして下さい。
  9. そして「タイトル名」フィールドには、コンボボックス「コンボ2」で得たデータを抽出条件として下さい。
  10. このフィールドは、抽出だけに使用しますので、「表示」はFalseにして下さい。

# 分かりやすくするために、サンプルでは全テーブルフィールドをクエリフィールドにドラッグしています。しかし、下記のように簡易にすることも可能です。

 

これで外枠が完成です。

が、しかし、これだけでは正しく動きませんので、マクロでイベントを実行させます。下記のマクロアクションは、この「frm_kensaku_2」のフォームで使用するマクロ全てです。

 

フォームで稼動させるマクロ

  1. "コンボ1"マクロは、「コンボ1」の「更新後処理」にセットします。

  2. "コンボ2"マクロは、「コンボ1」の「フォーカス取得時」にセットします。

  3. "コンボ3"マクロは、「コンボ2」の「更新後処理」にセットします。

これでフォームが動くはずです。#このフォームは検索と閲覧フォームですので、データを保存しません。

後は、各自いろいろとアレンジして下さい。また、紙面も残り少なくなってきましたので、"リストボックス"だけで構成したフォームの作成は、次週に行います。難しかったですか?ここを乗り切って下さい。

 

では、今日はこのへんで…、またお会いしましょう。お楽しみに………

 

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

 


検索・抽出フォームの作成と解説_1 : CDアルバム管理ソフト07


 

-Microsoft Access Club-