<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--絞込みの仕組み(初級)
 [まずは基本となるフォーム作り]   [クエリーを使う場合1] [2]   [フィルタを活用する場合]   [コンボボックスに変更] 



■コンボボックスを使う

ささ、がんばりましょう。
さて、このコーナーの最後になりますが、「へのへのもへじをコンボボックスにしてみよう」と思います。
つまり、直接「TOKIO」って入力するんじゃなくって、一覧から選べるようにしちゃおうってわけです。

え?興味ない?えーいいじゃないですかやってみましょうよー。


は(マイペースですすめる)下の図を見てください。

フォームビューの状態で、「へのへのもへじ」テキストボックスを右クリックし、ショートカットメニューを出します。
出てきたメニューの中から、「コントロールの移動」を選ぶと、テキストボックスは「ラベル」「リストボックス」「コンボボックス」に姿を変えることができるんですね。

今回はコンボボックスを選びます。

へのへのもへじはコンボボックスになりましたね。
でも、このままじゃ何にも起らないんですよ。

上の図を見ていただきながら、コンボボックスのプロパティをいろいろ変更します。
重要なのは左のふたつ。
 「値集合タイプ」 どういうデータをコンボの中に出すか。
 「値集合ソース」 じゃそのデータは具体的に・・・

って感じです。

 たいていは、
  テーブル/クエリー 既存のテーブルかクエリーのレコードを表ヲさせる
  値リスト 「値集合ソース」欄に直接値を書き込む
のどっちかですね。

「値リスト」「テーブル/クエリー」、両方ためしてみましょうか。え?どっちか一方でいい?無駄??
そんなこといわないで・・・。両方お話しますから、やってみてくださいな。


まず、「値リスト」からいきましょう。

「値集合ソース」を「値リスト」にしてから、「値集合ソース」欄に

SMAP;TOKIO;V6

と、コンボに表示させたい順に、半角のセミコロンで区切って入力してやります。

じゃ、フォームを保存して、フォームビューに切り替えてみましょう。
どうです?出ます?
どれかひとつ選んでみてください。

選んだグループ名で絞り込まれますよね。
コンボボックスっていっても、結局、テキストボックスとおんなじですからね。
入力するか、選ぶようにするか、ってことなんです。


さてさて。
これでもいいんですけど・・・例えば、しょっちゅうグループ名が変わるとか、グループのラインアップが変わるとか、グループの数が40とか50とかめいっぱいあって、プロパティ欄に書き込むのが大変だとか・・・

そういうときは、「値集合タイプ」を「テーブル/クエリー」にしたほうがよいですね。

あと、既に何か、コンボボックスの中身として使えるようなテーブルがある場合とか・・・。

今日はとりあえず新しくテーブル作ってみましょう。
既存のテーブルを利用するときは、またそれなりにいろいろ考えなくちゃならないことが出てくると思うんで、今日はとにかく基本をつかんじゃってください。

で、なんか名前を付けて保存します。
「わたしは、「グループのテーブル」っていう名前にしました。蜒Lーは別にいらないでしょう。あってもいいですけど、わたしはなしの状態にしました。そうすると、たった1列だけのテーブルになります。

主キーをオートナンバー型かなんかで自動的に作成して、2列になった方は、それでもよいですよ。でも、「2列目をコンボボックスの中に表ヲするんだ」ということを、頭に置いておいて下さい。何も指定しない場合、コンボボックスは、テーブルやクエリーの中の一番左側の1列だけを表ヲするつもりでいますので・・・。
2列目だけを表ヲさせたいときは、そういう指定をしますから、「よくわかんないけど」ではわけのわからないことになっちゃいます。

ここまでよいですか?んじゃ、このテーブルは閉じてください。


では、改めて・・・。
フォームをデザインビューで開き、コンボボックスのプロパティを出します。

「値集合タイプ」→テーブル/クエリ
「値集合ソース」→ 今さっき作ったテーブル(あたしは「グループのテーブル)

と変更しましょう。

ここで注意を・・・。
さっき、蜒Lーを設定してテーブルが2列になった方は、このコンボボックスの次のプロパティを修正してください。1列の方はそのままでけっこうです。

(書ョプロパティを見てください)
 ・列数 → 2
 ・列幅 → 0;3 (1列目を0cm、2列目を3cm、という意味。間はセミコロン)

じゃ、フォームを保存して、見てみましょうか。

結果は同じですよね。結局、コンボボックスに表ヲされる内容は、同じはずです。
ただ、方法として2通りあるよ、ということで(他にもありますけどまあ蝸ャはこのふたつじゃないですかね)、お好みで使い分けてください。


決まったやり方はないんですよ。Accessの使い方は、皆さんご自身が決めてください。
Accessの中にいろんな道具がいっぱいつまってるだけなんです。その道具を、どういうふうに使ってどういう結果を出すかは、皆さんおひとりおひとりが考えることなんですよ。Accessってそういうソフトです。

ここまでいろんな機能やプロパティを組み合わせてひとつの仕組みを作るとなると、gう人、作る人によってさまざまなやり方や個性が出てくるだろうなって、容易に想像つきますよね。だから、逆に困ることもあるんです。
「住所で検索できるようにしたいんですがどうすればいいんですか?」って聞かれても、どのあたりからお話していったらいいのか、いつもすごく迷います。多分、おひとりおひとり、「検索」という動作について思い描いている完成図が違うだろうなぁと思うからです。

でも、とりあえずこういうやり方をひとつふたつ、少なくとも「クエリーの基本的な扱い方」「フィルタの使い方」「フォームで動作させるときのやり方」の基本形が頭の中に入っているなら、構想ももう少し具体的になってくると思うんですね。

「グループで絞り込んだ後、住所でさらにしぼりこみたいんですけど、コンボボックスをふたつ使った絞込みは、どんなふうにすればいいんでしょうか」とか、「金額で、w定した額より多い人だけの表ヲにしたいんですけど」とか「名前の、フリガナ頭一文字で絞り込みたいんですけど」とか、もっと具体的な構想が生まれてくると思うんですよ。でも、ただ漠然と「検索」といっても、人によって考え方それぞれだと思うんですね。

とりあえずこのコーナーでは、「クエリー」と「フィルタ」を使ったすごく基本的な絞込みの仕組みをトータルコーディネートしてみました。
もっと複雑な条件、もうちょっとこったフォーム作りなどは、また別の機会にお話していこうと思います。



(オシマイ)