<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--基本操作を考える
データベース テーブル フォーム クエリー レポート マクロ&仕上げ
1 1 2 3 4 1 2 3 4 5 6 7 B 1 2 3 4 5 6  8 1 2 3 4 5 1 2 3 4 S



■クエリーを作る 8■

いろんなクエリー作りましたよね・・・。でもね、実は、まだまだいろんなことができるんですよ。
っていうか、もうAccessの大半をクエリーが占めるって考えても行き過ぎじゃないってくらい、クエリーって重要なオブジェクトなんです。
Access使うならクエリーっしょ、って感じのオブジェクトなんですね。
なんか、好んで使わない人もいるみたいですけど、だったらAccess使わなくてもいいんじゃないのかなぁって、わたしは思ったりします。

なので、テーブル、クエリー、フォーム、そして、これからお話するマクロレポートの5種類の作り方と役割をだいたいつかむことができたら、クエリーでどんなことができるのか、とにかくいろんなクエリーを作ってみるのがいいでしょう。クエリーでできることをたくさん知っておくと、それだけデータベースの世界が広がるし、より使いやすくて便利なデータベース作りにつながりますよ。

というわけで、これがクエリーのすべてではないんですけど、最後にもうひとつ、違ったパターンのクエリーを作ってお開きにしましょう。

まず、「社員テーブル」を基にして、新しくクエリーを作りましょう。
「所属」と「売上」のふたつのフィールドを下の段に選びます。

んで、ここからがミソ。画面の上の方、ツールバーの中に「Σ」マークのツールボタン、ありません???
見つかったらクリックしてみてください。
ちょっと変化があるでしょ。
「集計」っていう行が出てくると思います。どうでしょ??

「グループ化」「グループ化」って、横に並んでるとこです。見つかりました??ここがポイントです。

これは、「集計クエリー」という、ちょっと変わったタイプのクエリーになります。
つまり「所属」で集計して、その組の合計だけを出すクエリーにしようってわけです。

でも、上のように両方とも「グループ化」ではイケマセン。
グループ化するのは「所属」で、売上金額は「合計」しないと。
「グループ化」を「合計」に変更しましょう。

これでデータシートビューにしてみましょう。開いてみると・・・。
ね、集計されてるでしょ。
こういうクエリーはこれで使えると思いません?

ここで、ちょっぴり考えてもらいたいんですよ。上のクエリーと今まで作ってきたクエリーとの違い。
この違いこそ、データベースの真髄なんです。

この表と見比べてみてください。
まあ、選んでるフィールドとか件数とか、違いますけど、そういうことじゃなくて、もっと根本的な違いを実感してもらいたいんですよう。どうでしょう。

左の表は、1行の単位は「社員ひとりひとり」、つまり「社員番号」なんですね。社員ひとりに対して1レコード、レコードが存在してるわけです。
それに対して、上の表になると、最小単位は「所属」です。所属ごとに明細を全部集計して、それが1レコードになってる・・・。

データベースを使っていくにあたって、一番考えなくちゃいけないのが「その中の1レコードの単位」です。これがなんだかわからないままだと、なかなかぴしっと決まったデータベースを作ることって難しいと思うんですよ。

残念ながら、Accessでは、「明細」と「合計」を混在させることはできないんです。
つまり、「さくら組の社員12人の名前と売上を表示した後、13行目に12人分の売上合計を算出して表示して、14行目からすみれ組の・・・」というこは、できないんです。
その「表」の中では、1レコードの単位はそろえないとなりません。所属ごとの合計を出したいのなら、それ専用のクエリー・・・ということになります。

ただデータを表の形にまとめるだけなら、多分Excelのような表計算ソフトのほうが、手軽だし高度なことができると思います。
データベースは、ひとつのテーブルもしくはクエリーの中で、データの系列が揃ってなければならないんです。

これがね、難しいっていう人もたくさんいると思うんです。

Accessみたいなデータベースソフトを使いこなすためには、操作方法や機能を覚えるのが半分、データベース的考え方を養うのが半分、って、わたしは思ってます。
いくら操作方法を覚えても、テーブルに入ってくるデータがめちゃくちゃでは、正確で使いやすい処理にはつながらないんですね。

「考え方を養う」って、すっごく大切なことなんです。でもこればかりは「考え方」なので、じゃあどうすれば???っていってもなかなか難しいと思うんですよ。ゆっくりいろんなデータベースのサンプルとか見ながら研究してみてください。ある日ふっと「あ、なんだ、そういうことなのね」って、わかっちゃうってこともあると思いますよ。

余談ですが、「明細」と「合計」、混在させることができるオブジェクトがひとつだけあるんです。「レポート」です。要するに印刷物ですね。
後でやってみましょう。


あとはぽつぽつ、クエリーで役立ちそうな情報を・・・。
フォームの操作のときお話したかもわかりませんけど、基本的に「3桁ずつカンマで区切って数字を表示したい」とか「○○円」とか単位をつけたい」とかいうことは「書式」っていうプロパティで設定します。んで、だいたい「フォーム上」でやるもんなんです。
クエリーとかテーブルってのは、あくまでもデータを蓄積したり抽出したりするためのオブジェクトなので、見た目の体裁整えることはあんまり考えなくてもいいんですけどね・・・。

いちおう、数値や日付の書式を設定することができるプロパティもあるんですよ。
「売上」のフィールドとこを右クリックして、ショートカットメニューから「プロパティ」を選んでみてください。
書式、設定できますよね。

データシートビューに切り替えてみて、効果のほどを確認してみてください。エラーになっちゃったら、なんかどっかおかしいんですよ。もっかい確認してみてくださいね。

別に集計クエリーに限らず、ありとあらゆるクエリーで有効な操作ですから、あわせて活用してください。


あとは・・・計算式を設定できます。これも集計クエリーに限ったことじゃないんで、けっこう使えると思います。
例えば、「売上」金額を1.5倍にして、来期の目標金額を立ててみましょう。うへー、1.5倍とはきびしいっすね。

これは超簡単。
あいているグリッドに(三番目のとこでいいです)
計算式を直接入力します。



式のフォーマットは

このクエリー内で使われるフィールド名を適当に:計算式

と、いう感じで、半角のコロンで区切って入力します。例えば・・・「次の目標」って名前のフィールドにするとして、

次の目標:[売上]*1.5

となります。ひらがな漢字以外は全部半角ですよ。
[ ]は入力しなくても何とかなると思いますけど、フィールド名であることを意識しながら入力する癖つけてください。フィールド名とかフォーム名は、[ ]で囲むんでしたよね。

そんで、このクエリー、今、組ごとの集計をとるクエリーになってますから、「次の目標」も「合計」をさせます。これも忘れないでくださいね。

と、開いてみると・・・。
なんかそれっぽい答えが出てるでしょ。
横列の計算式はこんな感じで作るんですよ。

あ、もちろん「集計クエリーじゃない状態」でも、この式は有効です。仮に、集計クエリーじゃない状態にしてみましょうか。
Σボタンをもう一回クリックしてください。集計状態じゃなくなって、普通のクエリーになりますよね。

今、「社員番号」も「名前」も選んでないから(つまりこの表の中での1レコードの単位となるフィールド)、わけわかんない表になっちゃいますけど・・・とりあえず、「次の目標」、ひとりずつ計算結果が出てますよね。
あー、でも、このままじゃマイナスの人はよりマイナスになっちゃいますね。わはは。
そこんとこはまあ、今日はご愛嬌ということで・・・。

このクエリーには、「名前」か「社員番号」が必要になりますよね。でも、もし、再び「所属」ごとの集計をするなら、「名前」や「社員番号」があってはならないのです。

あんまり難しく考える必要はないと思うんで、みなさんの身近なデータをじっくり観察してみてください。
身近なデータで考えるのが一番ですよ。
「そのデータのかたまりの中での、1行分の情報って、どのフィールド単位に考えたらいいの???」ってトコを見極められると、データベース作りもすっごく楽になると思います。
がんばりましょう♪


さあて、「テーブル」「クエリー」「フォーム」と見てまいりました。いかがでしょう。

単体の使い方、作り方を学ぶ一方で、それぞれどっかしらつながりがあるんだなってとこ、おわかりいただけました?この3つのオブジェクトは、常にセットで考えていくといいと思います。

次に・・・「レポート」というオブジェクトについて見てみます。
まあ、考え方としては「フォーム」の印刷物バージョンです。と言い切っちゃうとなんなんで、とにかく後々まで役に立ちそうなことを中心にいろいろお話しますね。
そうですねぇ・・・。まずは、全員の名前とか売上金額をずらっと印刷するための「名簿」みたいなものを作ってみましょうか。ね。