<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97データベース工作室>在庫のザの字はどう書くの〜♪
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20



コンボボックス2段方式で絞り込む方法は、みなさんだいたいイメージ湧きますよね。

これでもいいと思います。でも、今回はちょっと違った指向のをやってみようかな、と思います。



完成イメージはこんな感じにしようと思います。

「横浜」のオプションボタンをクリックしたら、コンボボックスの中身は
「横浜所属の営業マンだけ」になる・・・といった感じです。

営業所がいっぱいあったり、しょっちゅう名前が変わったり、
しょっちゅう増えたり減ったりつぶれたり移動したりするような場合は、
こう作っちゃうと返ってめんどうですけど・・・。
選択肢にあまり変動がない場合なら、この方法もいけると思います。



じゃ、まず下準備を・・・。

フォーム内のコントロールを少しずつ動かして隙間を作り、オプショングループというのを作ります。

え?それは何かって?いいからいいから。作ってくださいって。
下のように妙な枠だけできます。あたしのは[フレーム24]っていう名前でした。変な名前だけど、このまんま使おうと思います。

で、このフレームの中に、オプションボタンを作ります。
えー・・・「全社」「横浜」「新宿」「池袋」「その他」ってことで、全部で5つ。とりあえず適当に作ってください。
マウスポインタを動かすと、下のようにに黒くなりますんで、その辺も意識しながら作ってみてください。

で、各ラベルを見やすいように書き換えて、大きさや配置を整えましょう。
ちょっとめんどうで細かい作業が続きますけど、のんびりやりましょう。

と、カッコだけ揃いました。どれかオプションボタンをクリックすると、他のはみんなオフになりますよね。
同じグループの中に作られたオプションボタンということで、こういう動きになるわけです。
え?ならない?ちゃんとフレームの中に入るようにボタン作りました?


さて、このオプションボタンとフレームの関係なんですが、まず、各オプションボタンのデータプロパティを見てみてください。
「オプション値」という欄があって、全部のオプションボタンに、それぞれ違う数字が入ってると思います。

これは作った順番に1,2,3...とつくので、わたしのは
[全社]=>1
[横浜]=>2
[新宿]=>3
[池袋]=>4
[その他]=>5

ってなってました。
みなさんのはどうですか?



この値は、フレーム24の状態を表す値となります。
つまり、「横浜のオプションボタンがオンになってるとき」というのは、フレーム24が2である、ということなんです。

「全社」がクリックされてるとき=>[フレーム24]の値は2

「横浜」がクリックされてるとき=>[フレーム24]の値は3

「新宿」がクリックされてるとき=>[フレーム24]の値は4

「池袋」がクリックされてるとき=>[フレーム24]の値は5

「その他」がクリックされてるとき=>[フレーム24]の値は6

と、まあ、こうなるわけです。フレームの方で考えます。


ようするに、フレーム内のどのオプションボタンが選択されてるかによって、コンボボックスの値集合ソース欄を書き換えてやろう、というわけです。
イメージ、湧きました?

で、ほんとはこの「値集合ソース」欄にSQL文というのを代入すればいいんですけど、
ちょっと難しくてあたしにはよくわかんないんで、
クエリーを何種類か作ってやってみようと思います。



まあ、月並みですけど、「横浜のオプションボタンが選択されて、フレーム24が2のとき」は、コンボボックスの中身は横浜営業所勤務の営業マンだけにしたいんで、こういうクエリーですね。

     ↓



そうですねぇ・・・Q_横浜とか、なんかわかりやすい名前をつけて保存しておきましょうか。

で、同じように、抽出条件が"新宿"、"池袋"のクエリーも作ります。いちいち新規作成・・・とやるのがめんどうかなーという方は、このQ_横浜をコピーして使うとちょっぴり楽かも。

データベースウィンドウでQ_横浜をクリックして青く反転させ、キーボードから[Ctrl]+[C]、その後すぐ[Ctrl]+[V]とやれば、これでコピー&ペーストという操作になります。

で、新しく別の名前をつけてやれば、おんなじクエリーがもういっこできあがり。
抽出条件だけ変えればいいですよね。え?意味がわかんない?
・・・じゃ、コピーはせず、ひとつひとつ「新規作成」で作っていってください。


で、最後・・・。あと営業所は大宮と品川なんですが、ここはまだ新しい営業所でメンバーも少ないんです。
呼び名も変わるかもしれないし、移転するかもしれない。
その上最近、川崎と八王子にも営業所ができるのできないのという話がごちゃごちゃあって、えーい、それなら、横浜新宿池袋以外は全部「その他」ってことでどうや〜ということになりました。

その場合のクエリーは、とりあえずこんな風に書きます。同じフィールドを使って抽出条件を三つ並べました。そして、ひとつを除いて非表示にしています。

抽出条件は<>横浜

横浜以外、という意味です。
<>は半角です。ダブルコーテーションは勝手につきます。



と、こんな風に、横浜新宿池袋以外の営業所のメンバーが表示されるクエリーになります。



このクエリーには、Q_その他とでもつけて保存しますかね。

このクエリー、もう一度デザイン画面を開くと、こんな感じに書き換わってくれてます。
最初からこう入力できればいいんですけど、なかなかねぇ〜。