<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>コンボボックスを使った絞込みのしくみ
   



ひとつめのコンボボックスを作る

さて、これから、コンボボックスを作っていきます。
MS-Accessには、ウィザード機能があっちこっちにあるんですけど、今回は、ウィザードを使わずにコンボボックスを作りたいんです。
ツールボックスの右上にある「コントロールウィザード」ボタンをクリックすると、「コントロールウィザード」という機能のオフ/オンを切り替えることができます。
何回かクリックしてみて様子を見て、こいつを、オフにしておいてください。

そしたら、ツールボックスの中から、「コンボボックス」ボタンをクリックし、クリックしたあと、フォーム内のどこかをクリックします。
ツールボタンをドラッグしてフォーム内に持っていくんじゃありませんよ。ボタンですからね。クリックして、フォーム内をクリック、です。

すると、コンボボックスがひとつできます。
コンボボックスのへりっぱたをダブルクリックすると(黒い手の形のマウスポインタになっている)、画面のどこかにプロパティが出てきます。

私の場合、このコンボボックスはどうやら、「コンボ0」という名前みたいです。
こうやって手作りしたコントロールは、Accessが適当な名前をつけます。
コンボボックスの場合は、「コンボxx」(xxのところには、なんかしら適当な数字が付く)とつくみたいですね。
みなさんは、なんて名前になりました?

別に「コンボ0」である必要はないので、皆さんの画面の中で、なんて名前になっているかを確認しておいてください。
この、「コンボボックスの名前」って、とても重要なので、必ず確認をするようにしてください。

とりあえず今後は、「コンボ0」ってことでお話していきますね。
もし、皆さんの画面で 「コンボ14」 になってたとしたら、「コンボ0」を「コンボ14」に置き換えて読んでってください。



では、ひとつずつ、プロパティの設定をしていきましょう。
まずは上の図をもう一度見てください。一番重要なプロパティ・・・「値集合ソース」です。
ここに設定されているものを、コンボボックスの中に表示します。
テーブルかクエリのデータを表示するケースが多いんですけど、ここで値を直接指定したり、SQL文を直接書いたり、方法はいろいろです。

ここには、[地域テーブル]というテーブルを指定します。
これは、↓こういうデザインのテーブルです。

とりあえず、このコンボボックスには2列目の[地域]が表示されればいいかな、と思ってます。
[地域コード]というものがなんであるか、は、いろいろと意味があるので、後々お話していきますが・・・。
一番の目的は、「思ったように並んで表示されるようにするため」です。
私たちからすると「北海道・東北」が一番上に来て当たり前ですけど、コンピュータにはそんなことわかりませんからね。
数字とかでしっかりと並びを指定しておいてあげないと、いろいろ後々面倒なことになりそうですから。



で、次に、コンボボックスの書式を整えます。
いろんなプロパティがあるんですが・・・今回は、「列数」と「列幅」の二つを設定しまし列数・・・・・2(半角で入力)
列幅・・・・0;3(半角で。間のセミコロンも半角。これで、0センチメートルと3センチメートル、という意味になる)ょう。

これで、「[地域テーブル]のフィールドの1列目と2列目(ひとつめのフィールドとふたつめのフィールド)を表示することは表示するんですが、ひとつめのフィールドは幅0センチメートルってことで見えなくしちゃう」という意味になります。

MS-Accessに限ったことではないんですけれど、こういう「出してるけど見せない」みたいな手法って、たまにありますね。

ちょっと表示のテストをしておきましょう。
左上のツールボタンをクリックして、フォームビューに切り替えます。

まだ、できそこないフォームですけど・・・。
でも、コンボボックスはちゃんと機能しますよ。リストボタンをクリックしてみてください。

出ます?
ここで躓いちゃうと、後々厳しいので、イマイチ自信がない・・・という方は、もう一度おさらいしておいてくださいね。
ポイントは、

1)どういうテーブル(またはクエリ)なのか、デザインを確認しておく。
2)コンボボックスの「値集合ソース」プロパティ
3)コンボボックスの「列数」プロパティと「列幅」プロパティ

この3つですね。

コンボボックスの状態を確認できたら、デザインビューに戻りましょう。
画面左上のツールボタンをクリックします。

余談ですが、「コンボ0」っていうラベルじゃ嫌だ、という方は、ラベル書き換えしちゃってください。
ラベルをダブルクリックすれば、書き換えられるようになると思います。
ラベルのプロパティ出せばいいんですけど、出さなくても書き換えられますから、ちゃっちゃっと書き換えちゃってください。

ああ、そうそう。ラベルを書き換えても、コンボボックスの名前自体は変わらないですよ。
この、「コンボボックスの名前」っていうのの意味がよく分からなくて、なかなか先に進めない方がけっこういらっしゃるので、この機会にぜひとも「名前」といものに慣れちゃってくださいね。コンボボックスの「名前」は、プロパティで変更/確認します。

後から変更することもできますけれど・・・これからやることはすべて、コンボボックスの「名前」に左右されます。
「この名前のコンボボックスだから、ここではこういう書き方をするんだ」という「名前どうしのつながり」をシッカリと理解してください。
コンボボックスの名前はもちろん変更できます。でも、今回の練習では、名前でつながりあっていることを理解することが第一なので、このまま先に進めますね。



そして、もうひとつ重要なことです。
「連結列」というプロパティがあります。実はこれがとっても重要なんですけれども・・・。
デフォルトは 1 ってなってると思います。
これは、「コンボボックスの中に実際に入る値は、どれか」を指定しているんですね。
このコンボボックス、見えているのは「北海道・東北」とか「関東」とか、いわゆる、テーブルの中の2列目の値、ですけれど、コンボボックスの中には1列目の値が入ってるんです。

これ、実はすごく大切なところなので、プロパティの場所と意味合い、確認しておいてください。

ここまで作業が完了したら、このフォームに名前を付けて保存しておきましょう。

ここでつける「フォーム名」も、今後の作業の重要なポイントになりますので、なんて名前をつけたかわからなくなっちゃうってのは、なしですよ。

あと、今回は、半角カタカナでのフォーム名はつけないようにしましょう。
基本的にわたしは、半角カタカナをファイル名とかオブジェクト名に使うのはよくないと思ってるのですけども、好んで使う人もおられますからね。
でも、今回は、半角カタカナは、使ってはなりませんよ。