<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--Excelとどう使い分けるか2/2
  1  2



仕事には、流れがあります。

見積書を出すっていったって、意味もなく出すわけじゃないと思うんで、やっぱり流れってものがありますよね。
その流れをじっくり考えてみてください。表計算ソフトを使った方がいいのか、Accessを使った方がいいのか、その辺の使い分けのポイントは、データの流れがあるかどうかってところにあります。

↓こういう印刷物を、要所要所でとにかく出したいのか

↓それとも、こんなふうに日々発行した見積書をデータとしてとっておいて

月末とか期末とかに↓こんなふうに集計して、どの商品に対する見積依頼がどれくらいあったのか資料にしたいとか

みなさんが今、「会社からいわれてる仕事があるんだよなぁ」と思っていることは、上のどっちに当てはまりそうでしょうか。どっちかといったら・・・。

最初のはExcelとかLotus1-2-3とか、いわゆる表計算ソフトを用いたり、あと、最近はワープロソフトにもマクロとか計算機能がついたやつとかありますから、ワープロ利用してもいいですよね。多分「印刷する」という面では表計算ソフトよりも体裁のいい見積書を作ることができるでしょう。でも、表計算ソフトもなかなか便利にできてますし、その辺はお手持ちのソフトを工夫してお使いになればいいと思います。


Excelより高度なことをやるのがAccessというのは、マチガイだと思います。そんなことはありません。

データの量が多いからAccess、少ないからExcelを使う、というのも、一概に言えないことです。

計算式や処理が複雑になりそうなのでAccess、単純ならExcelというのも、ちょっと違います。

そういうことじゃなくて、入力したい情報に時間の流れがある場合と、比較的単発スポット的扱いの場合ってありますよね。まあ、境目が難しいとこですが・・・・。わたしはそんなふうに考えてます。

Accessは、テーブルの中にデータをためて、それをクエリーを使って抽出したり集計したりしてあとあとデータを利用していくような、そんな形の業務に適してます。逆に、ただひとつの印刷物を出したいためだけにデータベースを作るのは、できないことはないと思いますがあんまりAccessを用いる意味がないんじゃないでしょうか。

なんでもかんでも「Accessでやればできるかも」という考えはちょっと置いて、まずこの辺から切り分けをなさるといいんじゃないかと思いますよ。「入力」と「出力」と「照会」という処理が日々発生しそうならAccessでしくみを作るとよいでしょう。それ以外の場合なら、無理にAccessを用いず、うまく表計算ソフトやワープロソフトを取り入れていくのが理想的だと思います。

でも、今は、システム化したい業務内容のみなおしとかおさらいとかする前に、先に「Accessで作る」ってことが決まっちゃってることって、ありますよね。まあ、Accessでも大概のことはそれなりにできますけど、ほんの2〜3分でも、一呼吸おいてAccessで作るメリットがあるかどうか考えてみるのもいいと思うんですけどね。

みなさんはどんなふうにお考えになるでしょう。

で、ここまで書いといてなんなんですが、表計算ソフトとAccessを比較することって、あんまり意味ないと思いません?結局、みなさんが思ったように作ればいいんじゃないですかねぇ。こだわらない方がいいと思いますよ。



時々、こんなことをお考えになる方がいらっしゃるんです。

Accessで作ったレポートを、Excelで印刷したい

これって、根本的にはできないことです。と書くと語弊がありますが、とにかく今までお話してきたように、ExcelとAccessでは、データの持ち方がぜんぜん違います。

確かに、こんな感じのレポートは、Accessで作ることができますよね。でも、ここに印刷されてくるデータって、もとはどこにあるかというと・・・レポート上にあるわけじゃないですよね。

もとのデータは、そうそう。テーブルの中にあるわけです。

↓こういうのですよね。

このテーブルの、[見積先]とか[品名]とかいうフィールド名が、それぞれレポートの各テキストボックスと結びついているから(コントロールソース)、レポート開いたときテーブルの中の1レコード分がレポートの中に納まって印刷されてくるわけです。

で、表計算ソフトの方に目を移すと、どうでしょう。下の図で行くと、1レコードめは「見積書」なんて見出しになってて、2レコードめに「見積先」が入力されてて・・・・表計算ソフトは、データが入力されるところと印刷されるところと全部いっしょくたなので、こんなふうになります。Accessとはデータの持ち方が違うんです。

みなさんの頭の中では、上のレポートをそのままExcelに移したら、↓こんなふうになるようなイメージがあるかもしれませんが、

基本的に、フィールドが「列」、レコードが「行」です。で、レポートの中の各テキストボックスの位置が、「見積先のテキストボックスは左の上の方にあるから、2行目のA列に印刷されればいいな」とか、そんなことは起こらないです。それは、データの持ち方が違うから。

レポート1枚分の見積データ(ヤマダ株式会社に出した9/15付けの見積書)をExcelに渡すなら、Access側でのデータの持ち方はこんなふうになります。クエリーを使ってテーブルの中からレコードを抽出しました。で、これをExcelに出力します。

操作方法のお話してるわけじゃないんで具体的なやり方はここではお話しませんけども、まあ、とりあえずExcel側にデータがわたると、こんな感じになります。A列の2行目には、山田株式会社の9/15提出分の見積書の明細行1行目の、かんぴょうを5個注文した行が出てきます。これがAccessのデータの持ち方です。Excelはこのデータの持ち方をそのまま受け継ぐ形になりますよね。

もちろん、クエリーとかじゃなくて、レポートそのものをExcelやWordに出力したりする機能も、Accessにはあります。ここでは具体的な操作はお話しないですが、OfficeLinkとかいう機能があると思います。あ、Access2000の機能は知らないですよ。もっと便利なのがあるかもしれないですね。

見積書レポートをそのままそっくりExcelにもってくると↓こんな感じになりました。

赤で囲ってるのが、9/15に山田株式会社に提出した見積書1枚分のデータですね。

これもイメージ違いますよねぇ。罫線とか、文字の大きさを大きくして中央に寄せたのとか、どこいっちゃったんでしょう。。。。でもね、所詮こんなもんなんですよ。データの持ち方違うんだから。

表計算ソフトは、好きなセルに好きな値を自由に入力することができます。でも、それはあくまでも表であって、データベースではありません。データベースとは、縦横にキチンとまとまってデータが入力されてる状態をいうんですね。1列目は明細行、2列目は品名、3列目は単価・・・と、隙間なくデータが入ります。

データが入ってるのはあくまでもテーブルの中。レポートはそのテーブルの中のレコードを流し込んで出力するための枠にすぎません。フォームもおんなじです。レポートやフォームと、Excelのワークシートをごちゃごちゃにして考えてしまってる方は、もしかしたら表計算ソフトとAccessの違いがちっともわからない要因になってるかもしれませんね。

この部分を少し整理しておかれると、もしかしたらAccessがもう一歩身近なものになるかもしれませんよ。


まあ、こんなこと知らなくたって、ツールバーやプロパティの使い方覚えればAccessを使うことはできるんですけど、表計算ソフトの延長でテーブル作ると、あんまりいい仕上がりにならないんじゃないかなぁって思うんです。データの持ち方、違いますもんね。

例えば、会社とか団体の収支報告書みたいなのを作るとして、イメージはこんな感じで・・・

集計した数値が別口で計算されて、手元に既にある場合などは、Excel使って上のような表をそのまま入力して印刷すればいいでしょう。で、そのファイルとっておけば、また次の期のとき、数字だけ書きかえれば使えますよね。これは表計算ソフト的なデータの持ち方。

で、これが、特に数値が別口で計算されて手元に来るようなしくみもなく、一年間の収支伝票をまとめて全部計算して各区分ごとに集計する作業から毎回やらないとならないなら、収支の伝票入力の部分からAccessで仕組みを作っていく方向で検討なさってみてはいかがでしょうか。

データの持ち方がそれぞれどんなふうなのか、その辺をうまく比較できれば、表計算ソフトとAccessをうまく使い分けることもできると思いますし、Accessで、より使いやすいテーブル設計もできるようになってくるんじゃないかなぁと思います。

でも、上のような表は、Accessの「レポート」はちょぴっと苦手かもしないですね。。。こういうのは、Excel使った方がおそらく便利でしょう。あくまでもわたしの個人的な考えであって、根拠はないです。いや、そんなことないよ、という方もいらっしゃるでしょう。この辺も、みなさん個々に結論を出してみてください。