<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--オプショングループを作ってみる
   1 → 2 → 3 → 4 → 5



■オプショングループを作ってみる 5

ひとつ、サンプルを作ってみましょうか。

たとえば、こんな感じのテーブルがあったとします。
で、いろんな商品の登録があるんですが、分類が"K"のものだけの表示にしたいときと、"G"のものだけの表示にしたいときと、それ以外のものだけの表示にしたいときと、3パターンあるとします。
フォームでかっこよく切り替えながら表示させたいなぁと思ったとき、オプショングループが活躍できそうです。


じゃ、このテーブルを基に、簡単な表形式のフォームを作りましょう。
ウィザードでも、オートフォーム機能でもよいですよ。



わたしはこんな感じにしてみました。
デザインはお任せしますよ。適当にテキストボックスの大きさとか数値の書式とか、変えてみてください。

とりあえず、必要なことだけお話をしちゃいますね。
デザインビューの状態にして、フォームヘッダー部分をちょっとだけ広げます。

下の図で行くところの、緑色の線のとこですね。
ここを少しずつ、下方向にドラッグして、広げてください。
あんまり勢いよくドラッグしちゃダメですよ。
そっと、そっと、です。

各ラベルも、ちょっとずつ下に下げて、上のほうを開けます。



んで、フレームを作ります。
大きさはお任せしますが、オプションボタンかトグルボタンかチェックボックスを4つ作りますので、大きさは適当に調節してください。



わたしはトグルボタンを使ってみました。

皆さんも、お好きなコントロールを4つ、フレーム内に作ってください。
ラベルか標題を、わかりやすいものに変えときましょう。
分類がKのものと、Gの場合と、その他と、全部、です。



で、各ボタンがの「オプション値」がそれぞれいくつか、確認しておきましょう。

わたしのは、
 Kのボタンが 1
 Gのボタンが 2
 Otherのボタンが 3
 ALLのボタンが 4


でした。


で、これから何をやるか、というと・・・ですね。データの絞込みの仕組みを作るんですが・・・絞込みの方法でよく使われるものに、「クエリ」と「フィルタ」がある、というようなお話は、別のコーナーでチラッとだけさせていただいたような気がします・・・あ、ここでも細かくお話しますが、もしよかったら別コーナーの方も覗いていってくださいね。
と、いっても、両方やるわけにもいかないか・・・んじゃ「クエリ」を使った方法、お話いたします。

どういう考え方になるかというと、クエリーを3つ用意します。

 「K」のボタンをクリックしたら、<分類がKのものだけ表示するクエリ
 「G」のボタンをクリックしたら、 <分類がGのものだけ表示するクエリ
 「Other」のボタンをクリックしたら、<分類がKとG以外のものだけ表示するクエリ
 「All」のボタンをクリックしたら、 <へげへげテーブル


という具合に、フォームのレコードソースプロパティを書き換える動きを作るのです。
ちょっと難しいかもしれませんが、いろいろ応用が利くと思いますよ。がんばって挑戦してみましょう。


じゃ、フォームは保存しながら閉じて・・・。クエリを新規作成します。

こういうときのクエリのポイントは、「基のテーブルと構造を変えない」ことです。
だって、フォームのテキストボックスと結びついているのは「フィールド名」ですもんね。
わたしは、フォームでは4つのフィールドしか使ってないんで、4つだけ選びました。

で、抽出条件として、Kと入力しました。(ダブルコーテーションは勝手につきます)
半角、全角気をつけてくださいね。わたしはテーブルには全部半角で入力しているので、抽出条件も半角です。

ちょっとテスト・・・データシートビューに切り替えてみました。
データシートビューへの切り替えは、左上のツールボタンでしたよね。

ちゃんと出ますよね。


このクエリの名前は、Q_Kにしてみました。ちょっと短すぎてややこしいかな・・・まあいいや。



同様に、条件がGの場合のクエリも別に作ります。こっちはクエリー名はQ_Gにしました。




GとK以外のもの、というクエリは、条件欄に<>"G" And <>"K"と入れます。


このクエリの名前はQ_Not_GKにしました。


これで材料が整いました!
あとは調理するのみ・・・がんばりましょう!

フォームを再びデザイン画面で開いて・・・。

で、このフレームの「更新後処理」イベントを作ります。
ビルドボタンをクリックしましょう。
こういう場合は、コードビルダの方が比較的簡単なんで・・・コードでお話しますね。



こんな感じになります。

フォームのレコードソースは、


Forms![フォーム名]. RecordSource

もしくは、

Me.RecordSource

という書き方になります。で、

Forms![フォーム名]. RecordSource = "クエリとかテーブル名" あるいは

Me.RecordSource = "クエリとかテーブル名"


という書き方になります。


書けたら、フォームを保存して・・・フォームビューに切り替えて、テストです。
絞り込まれます?




もちろんこれ以外にも、いろんな活用方法があると思いますよ。これはほんの一例です。
いろいろ活用なさってみてくださいね。いろんなことに活用できると思いますよ。
みなさんなら、どんなとき、オプショングループを活用します???いろいろアイディア練ってみてくださいね。