<HOME <お願い事項 <Access2002 TOP <Access97 TOP <サイト内検索 | ||
MS-Access2000超入門部屋--オプショングループを作ってみる | ||
1 → 2 → 3 → 4 → 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 = "クエリとかテーブル名"
という書き方になります。
書けたら、フォームを保存して・・・フォームビューに切り替えて、テストです。
絞り込まれます?
もちろんこれ以外にも、いろんな活用方法があると思いますよ。これはほんの一例です。
いろいろ活用なさってみてくださいね。いろんなことに活用できると思いますよ。
みなさんなら、どんなとき、オプショングループを活用します???いろいろアイディア練ってみてくださいね。