CDアルバム管理ソフトを作ってみよう!
●検索フォームの作成●
 
今回からは入力済みのデータの検索・抽出を行うフォームを作成していきます。
「コンボボックス」を使ったフォームを作成しようと思います。
 
[ 仕組みの説明 ]
 ・「コンボ」(左)に「tbl_main」をデータソースとして「アーティスト名」を表示させ
 ・更新後処理で「コンボ」(右)にその値を引き渡し、
 ・「tbl_main」をデータソースとして「タイトル名」を表示させます。
 ・次にフォームの基になっているクエリーに
 ・「コンボ」(左)で選択した「タイトル名」を抽出条件として
 ・帳票フォームに該当のデータ表示を行います。
 
ややこしいのでがんばりましょう!
 
ではフォームを作成します。フォーム名は、「frm_kensaku2」としましょう。
フォームウィザードで「オートフォーム:表形式」を選択し、基になるテーブルに「tbl_sub」を指定します。
そして修正を加えてください。

修正個所は以下の通りです。

  1. 全てのテキストボックスプロパティの「使用可能」を「いいえ」、「編集ロック」を「はい」にする。
  2. 全てのテキストボックスの横幅を調整する。
  3. 全てのテキストボックスの立体表示、背景スタイル、文字配列を適宜調整する。
  4. フォーム全体のフォントサイズを10にする。
  5. フォーム全体の「スクロールバー」を「なし」に、「レコードセレクタ」と「移動ボタン」を「いいえ」、「ポップアップ」と「作業ウィンドウ固定」を「はい」、にする。その他は適宜調整。
  6. フォームヘッダーに「コンボボックス」を二個作成する。
  7. 二個のコンボボックスのプロパティで「入力チェック」を「はい」にする。
又、フォームフッターが見えない状態で修正フォームを保存すると、次回のフォーム表示には三つくらいしかデータが表示されなくなります。
よって保存するデザインビューはフォームフッターの高さを"0"にし、必要なスペースを確保した状態で保存してください。
帳票形式のフォームでは結構大事なことです。
 
では「コンボ」を組み立てます。
プロパティのデータ欄の「値集合ソース」で「tbl_main」を選択し、ビルダーを起動させ下記のように設定します。
「集計」が表示されていない場合は「表示」ツールから選んでください。
「集計」の"カウント"は「アーティスト名」の多い順に一覧を表示させる工夫です。
 
コンボボックスのプロパティで特に重要なのは「連結列」です。
この項目はコンボボックスに複数列が表示されている場合に「何列目の値をかえすのか」を決める列を入力する所です。
今回は「アーティスト名」の一列だけなので既定値の"1"でいいです。
"1"とは左から一列目という意味です。
ちなみにここで作成しているコンボの名前は左が「コンボ16」で、右が「コンボ18」です。
 
「コンボ18」の値集合ソースも「tbl_main」を基にしたクエリーを作成しますが、「コンボ16」の選択項目を抽出条件としていますので、下記のようになります。
抽出だけに使用する項目は「表示」欄のチェックをはずします。不要なものは表示しません。
 
 
フォームのデータソースには、クエリービルダを起動させクエリーを作成します。
「コンボ18」で選択したアーティスト名を抽出条件として、フォームの詳細部分にデータを表示しますので、クエリー画面に「tbl_main」と「tbl_sub」を表示させ、「タイトル名」の「抽出条件」として下記のように記述します。
 

「tbl_sub」のフィールドは全て表示します。

 
これで外枠が完成しました。しかし、これだけでは正しく動きませんので、マクロでイベントを実行します。
下記は、この「frm_kensaku2」のフォームで使用するマクロの一覧です。マクロ名は、「mc_kensaku2」です。
 
 
・「コンボ1」マクロは、「コンボ16」の「更新後処理」にセットします。
・「コンボ2」マクロは、「コンボ16」の「フォーカス取得時」にセットします。
・「コンボ3」マクロは、「コンボ18」の「更新後処理」にセットします。
 
これでフォームが動くはずです。
なお、このフォームは検索と閲覧フォームですのでデータを保存しません。
 
後は各自でいろいろとアレンジしてみてください。
次はレポートの作成です。
 

 

 
 
(C)1999-2003 BE CORPORATION All rights reserved.Terms of Use. Privacy Policy.