<HOME  <お願い事項  <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--コンボボックス/リストボックスを極める
  1 > 2 > 3 > 4



コンボボックス、リストボックスって、うまく活用するとすごく便利ですよね。
このコーナーではそんなふたつのコントロールについて、基本的な使い方を含めていろいろお話しています。
まだ使ったことないんだけど、どんなふうに作ればいいのかな???という方にお読みいただければと思います。

ではまいりましょう。

まず、適当な名前のデータベースを新規作成して、その中にこんな感じのテーブルを作ってください。
テーブルやフォームの細かい作り方、操作の仕方は、ここではお話しませんので・・・
後で基本操作のコースの方、見直しておいてくださいね。



こんなふうにフィールド名をつけて、データ型を決めて・・・。

テーブル名を「商品テーブル」にしました。
わかりやすい名前なら何でも結構です。
コンボボックスやリストボックスの中に表示するデータ群として使おうかなと思ってます。



で、なんか適当にデータ入力しておいてください。 なんでもいいですよ。

基本的なとこさくっと理解していただけるような、シンプルなデータがいいかもしれないですね。
あとは、練習ですから、なんか興味あることとか入力していってみてください。
あ、でも、ここで頭使い切っちゃって、つかれちゃわないでくださいよ。




それと、ついでに・・・ 後で使おうと思ってるテーブルも、作っちゃっておいてください。
こっちは「売上入力テーブル」という名前を付けてみました。

とりあえず主キーはなくてもよいです。
今回は「コンボボックス・リストボックスの基本」をお話するつもりですので・・・。
その他のことはあくまでも付け足しのつもりです。

ほんとうは、こういうテーブルって、「伝票番号」ってダブっておんなじ番号が入ってきたりすること、ありえないですよね・・・。
おんなじ伝票番号を何回も使うような業務もあるかもわかんないですが・・・。
まあ、本来、テーブルの中には「絶対他のレコードの値とダブらない、このレコード独自の値を持つフィールド」をもうけるようにして、それを主キーにすべきなんですけど・・・。今日は練習なんで、主キーなしの状態でよいです。これはまた別口で学習なさってください。
主キーとかのお話は、なんで、主キーなんて必要なのか、とか、そういうお話になっちゃうと、Accessそのものというより、データベース概論みたいな感じのお話になっちゃいますし。突き詰めていくととっても大切なことなんですけどね。。。

ほんとは主キー、なくちゃいけないもんだと、わたしは思ってますよ。
っていうか、こういうテーブル作って「どれを主キーにしたらいいの???」って考えちゃうこと自体、ありえないのかも。
処理の中で自然に誕生してくるものだと思ってます。
こういうテーブルで、伝票番号が同じデータが何回も入ってくること自体、ヘンなんじゃないですかね。技術的に、じゃなくて、業務上の処理の問題として・・・。
主キーってそういうもんだと思うんです。




話がそれちゃいました。先を急ぎますね。

こちらは、データの入力はしとかなくてもよいです。
いちおう雰囲気だけ確認いただくだけで・・・。
後で使いますので、閉じておいてください。



そしたら、まずはコンボボックス、リストボックスの基本的な構造を見てみましょう。
そうですね・・・無地のフォームを作って、その中でお話しましょうか。
んじゃ、フォームを新規作成していただいて、「デザインビュー」の状態でそのまま何も指定せず[OK]ボタンをクリックしてください。



すると、テーブルとかクエリーとかとぜんぜん関係しない、無地のフォームができます。

これ使ってちょっと練習してみましょう。

まずは画面の中から、「ツールボックス」と呼ばれるものを探してください。
見つからない場合は、ツールバーの「ツールボックスボタン」(左の図の、ピンク色の丸印したやつ)を何回かクリックしてみてください。出たり引っ込んだりするやつがそいつです。
で、中から、コンボボックスかリストボックス(両方作っちゃってもオッケ)を選びます。上の図でいくところの、水色の丸印がコンボ、オレンジがリストボックスです。



ツールボックス内のそれぞれのボタンをクリックし、ボタンがへっこんだようになったら、ドラッグするんじゃなくてそのままマウスポインタをフォーム内に動かして、フォーム内の適当なところをクリックします(ドラッグしてもいいけど)。
ツールボタンをドラッグするんじゃないので、その辺の操作の感覚、確認しておいてくださいね。

わたしは欲張って両方作っちゃってみました。
比較にもなると思いますんで、皆さんもぜひ、両方作っちゃってください。
ひとつずつご説明していきますんで。

あ、ラベルだけ移動させるためには、左の図でいくとこのピンクの丸印をつけたハンドルだけをドラッグすると、ラベルだけ移動させることができるので、ついでにちょっと試してみてください。
ちょっぴりマウスポインタの形が変わるでしょう。そのときがチャンスです。



練習のフォームですけど、いちおう名前付けて保存してください。名前はなんでもよいです。
んで、一度「フォームビュー」に切り替えて様子を見てみましょう。左上の、フォームビューへの切り替えボタンですよね。

んー・・・。 形だけはできてますけど、まだ何にも出ませんよね。
まだ何にも設定してないし・・・。これで望んだものが出てきたらかえって気持ち悪いです。 じゃ、コンボボックスのほうから参りましょうか。

左上の青い三角定規ボタンをクリックして、デザインビューに戻りましょう。



そしたら、このコンボボックスの「プロパティ」を出しましょう。
出し方は・・・コンボボックスのハンドルをダブルクリックしても出てくると思いますし、ツールバーの中に「プロパティ」っていうツールボタンがあるので、これをクリックすれば出たり引っ込んだりしますよね。後は右クリック(ショートカットメニュー)でも出すことができます。どういう方法でもよいので、とにかくプロパティを見てみましょう。

コンボボックスの中に表示するデータ群を指示するプロパティの中で最も重要なのが左のふたつです。
「値集合タイプ」「値集合ソース」

ちょっとやってみましょうかね。

では、「値集合タイプ」欄をクリックして、一覧から「値リスト」を選んでみてください。
これを選んだ場合、コンボボックスの中に表示されるデータ群を「値集合ソース」欄に直接書いて指定することができます。
表示する項目がほぼ永久的に不動の場合や、比較的数が少ない場合は手っ取り早いです。 んで、書き方なんですが、半角のセミコロンで区切るだけ。



んじゃ、フォームビューに切り替えて様子を見てみましょう。

どうでしょう。なんかそれらしい感じで出てきます?
ね。3つとか4つくらいなら、これでもいけますよね。
でも、しょっちゅう内容が変わったり、30も40もあったりすると、この書き方だと面倒だと思いません?
まあ、セミコロンで区切って入力していけばいいし、内容が変わったら書き換えればいいんですけど・・・・。

デザインビューに戻って、もうちょっと調節してみましょうか。




「値集合タイプ」を「テーブル/クエリ」に戻してみましょう。
でもって、最初に作った「商品テーブル」を「値集合ソース」のとこに選びます。
直接入力しないで、一覧から選ぶようにしましょう。
別に意味はないんですが、せっかく一覧が出るようになってるんだし、活用しましょう。



今度はどんな感じになるかな・・・では、フォームビューに切り替えてコンボを開いてみましょう。

ほほ。なんか、テーブルの中身っぽいのが出てきてますよね。
でも・・・なんか、番号ばっかし・・・。
基のテーブルの中身、思い出してみてください。一番左端のフィールドだけが出てるって感じでしょうかね。
そう。コンボボックスって、何も指定しないと、1列だけの表示なんですよ。
これでもよい場合はこれでいいんですけど・・・・。

次にそういうとこを見てみましょうか。



じゃ、デザインビューにまた戻りましょう。

今度は「書式」というプロパティの中をいろいろと操作していきます。

まず、1列だけじゃなくて、基のテーブルまたはクエリーの中のフィールドをいくつか表示させたい場合は、その数だけ列数の指定をします。
フィールド2つなら2、3つなら3と、半角の数値を入力します。


んじゃあ、2って、半角で入力してください。

で、フォームビューに切り替えて確認してみましょう。



ちょっと見ただけだと1列だけの状態と変わってないようですけど・・・なんか、左右方向のスクロールバーが出てることおわかりいただけます?
2列表示してるんですけど、何も指定しないと、コンボの幅って決まっちゃってるんで表示しきれないんですよね。
じゃあ、デザインビューに戻って、その辺のプロパティをいじってみましょう。



「列幅」っていうプロパティがありますよね。
ここに、たとえば、1列目は 1センチ、 2列目は 4センチという具合に表示してもらいたいときは、


1;4

と、半角の数値をセミコロンで区切って入力します。
単位(センチメートル)は勝手につきますので、数値とセミコロンだけでオッケーです。


と、そうすると、こんな感じになります。
確かに 2列、両方とも表示されるけど、なんか窮屈ですよねぇ・・・。
まあ、これでもこと足りるときもあると思うんですけど。。。


そしたら、「書式」プロパティの中の「リスト幅」を調節してみましょう。

ここはふつう「自動」になってます。
つまり、リストを出さないときの、閉じてるコンボボックスの幅ってことなんです。
リスト独自の幅を設定したい場合は、ここに直接数値を入力します。
単位はセンチメートルです。
そのとき、左側にスクロールバーが表示されることを考慮して、少し余分に考えるとよいでしょう。


1 + 4 + 0.5 (スクロールバーの分) = 5.5


じゃ、5.5って半角で入力してみましょう。

こんな感じー・・・。
どうでしょう?
この辺のプロパティをいろいろ調節することで、より見やすいコンボボックスを作ることができそうですよね。

ついでのお話ですが、今、 8行表示されてますよね。
これくらいがちょうどいいかなぁと思うんですけど、たとえば、 9件あるうちの 8行を表示してるんだったら、最初から 9行表示できるようにしといたほうが、いちいちスクロールバーを動かさなくてもよさそうな感じがしません?

そんなときは「リスト行数」を調節します。
標準は「8 」なんですけど、増やせば増えるし、減らせば減ります(あたりまえだ)。
適当に調節してみてください。フォームのサイズとかにもよりますもんね。こういうのはケースバイケースってことで・・・。

と、増えてますでしょう?
「商品テーブル」の中身が14レコードだったんで、14行にしてみました。
すると、スクロールバー、表示されなくなりますよね。スクロールバーはいちおう、必要なときだけ出てくるっていう仕組みになってるんで、このへんはAccessにお任せ状態です。




後は・・・もし、「商品コードなんて、表示しなくてもいいや」という場合なら、商品コード自体はコンボボックスの中にあるけど、表示はしないよ、という設定もできます。
要するに列幅をゼロセンチメートルにしてしまえばよいんです。

これが結構有効ですよ。
列数としては2列なんですけど(テーブルの構造は変わらないですからね)、一番左側のフィールドは幅ゼロで中身は見えない、まるで2列目から始まってるみたい〜って感じになるんです。

ね。こうなります。
これでもいいって場合もあると思うんですよ。
そしたら、リスト幅、もっと狭くてもいけますよね。この辺極めるとおもしろいですよ。
いろいろいじってみてください。