<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--基本操作をさらに考える
   >00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 



もし「売上月ごとの集計がしたい」ということになったら、どうすればいいんでしょう。
とりあえず「売上日っていうフィールドがあるから、これを使ってグループ化してみましょうか。
あ、左の図、「社員テーブル」のフィールドリストがなくなっちゃってますけど、みなさんはそのままでオッケーですからね。
すいません、ちょっと画像を作るとき間違えちゃっただけです。

こんな感じになりましたけど・・・。
これって、「売上月」じゃなくて「売上日」ですよね。

「売上月」ごとに集計したいときってどうすればいいでしょう。
なんかできそうな気がしないでもないですけど、相手はコンピュータです。気が利かないんです。
「売上日」つったら「売上日」で、月ごとに出してくれって言っても、多分わかってくれないと思います。


そんなときは、何とかして「月ごとの集計」ができるようなフィールドを作ってしまいましょう。
Format関数っていうのが、すごく便利だってお話、前にしましたよね。こういう時も役に立ってくれますよ。

クエリのデザイン画面に戻って、いったんグループ化をやめましょう。・・まさか「グループ化ってなんでしたっけ?」とか言わないですよね。・・・。
ツールバーのΣのボタンをクリックすれば、集計はやめて、明細を表示する普通のクエリーに戻りますよね。

左のように、「売上日」のフィールド欄をFormat関数の式に書き換えます。
あ、式1っていうのは勝手に入ってきちゃうんで、入力するのは・・・。

format([売上日],"mm")

だけです。大文字小文字はどっちでもいいですが、フィールド名以外は全部半角。
こういう式の作り方も、皆さんだんだんなれてきたんじゃないですか?
なれちゃえば、一定の法則が見つかってきてそんなに抵抗なくなってくるんじゃないかと思いますよ。

あ、それと、Format関数、ヘルプ見て構造を理解しておいてくださいね。
あと、なんでフィールド名を半角カギカッコで囲んでるかとか・・・
そういうことはもうよいですよね。こういう細かいこと把握しておくと、あとあとちょっと複雑な式を書かなきゃならないときなんか楽できますからね。

それと・・・こんなこと書かなくてもおわかりだとは思いますが、[売上日]が「日付時刻型」のフィールドだからこそ、Format関数なんか使って「月」の部分だけ取り出せるんですからね。「テキスト型」のフィールドにしてたらできないですよ。

と、こんな感じになります。
つまり、[売上日]のフィールドからmm(「月」の部分)だけ取り出して、式1という名前のフィールドとして表示します。
これで、この式1ごとに集計すれば、月ごとの集計ができると、思いません???

あ、でも・・・今はまだいいですけど、来年になったら・・・。
このままだと、「月」の部分しか取り出してないから、2000年の6月も2001年の6月も、"06"になっちゃいますよね。
2年分集計しちゃうことになります。それでもいいんならいいんですけど・・・。

と、そういう場合は、Format関数のカッコの中をちょっと細工します。

format([売上日],"yyyy/mm")


yy/mmでも事足りるかもしれないですけど・・・。
これで集計してみましょう。

さあ、こうなりました。
どうでしょう。これなら、来年になっても再来年になっても、何とかなりそうですよね。


じゃ、これで何か集計レポートみたいなものでも作ってみましょうかね。社員番号か社員名のフィールドを追加してみましょうか。
これで、「その月に誰がいくら売ったか」という集計表になりますよね。

こんな感じ・・・。6月の集計じゃなくて、6月の社員ごとの集計が出てますよね。
あ、ついでに、「売上の合計」だけじゃなくて、何回売上げたか、って回数も計算させてみましょうか。そんなの必要じゃないかもしれないですけど・・・。

その場合は、何でもいいんですけど、「売上明細」のテーブルの中のフィールドを「カウント」します。
まあ、なんでもいいんですが、[伝票番号]を数えてみましょうか。

こんな感じ・・・。↓

どうでしょう。ここまでくると、「毎月の売上一覧」みたいなリストを印刷できそうな感じ、しません?
んじゃあと一工夫。「伝票のカウント」とか「式1」というフィールド名じゃ、ちょっとさえないなぁと言う場合は・・・変えときますか?
このクエリを基にしてレポートやフォームを作るなら、その中で変えることができますけども、まあ、気分ってことで・・・。

クエリーでの「式」のロジックは、だいたいもうつかんでいただいてると思いますけど、おさらいを。

クエリー内でのフィールド名:式

です。「クエリー内でのフィールド名」というのが、実際データシートビューなどで列名として表示されることになります。
なので、基にしているテーブルの中のフィールド名とダブっちゃいけません。こういうのは皆さんオッケーですよね。

と、こうなります。ね、なれちゃえばどうってことないでしょ??

こういうことはあまり悩まず身につけちゃっておいたほうが何かと楽ですよ。

じゃ、このクエリーを基にしたレポート、作ってみましょう。
レポートウィザードで、「売上月」でグループ化するように作ってみてください。「売上月」でグループ化されてれば、後は適当でいいですよ。
細かい手直しは後でやるとしましょう。


わたしのは、こんな感じのレポートになりました。

このままじゃなんなんで・・・ちょっと手直ししましょうかね。