質問

2009年02月05日 09時26分
  • VBAでの集計表作成について

情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

質問

お世話になります。

システムからAccessでデータを参照し、
最終的にはExcelで集計表という形での出力を
VBAで自動化しようと考えております。
集計表は、グループ単位でのグループ計と、
最後に総合計を表示します。

上記のような集計表を作成する場合、全ての処理をAccess側の
VBAで作成するべきか、もしくはAccessでは必要なデータを
Excelに出力するまでに留め、表の集計はExcel側のVBAで作成して、
Accessから呼び出すようにするべきかで悩んでいます。

どちらでもできそうな気がするのですが、どちらで作成するのが
一般的なのでしょうか。
また、その他にもっと良い方法をご存じでしたらご教授願います。

よろしくお願い致します。

3件の回答があります

回答

こんにちは。
まず、どちらが良いとか一般的とかは言えないのではないでしょうか?
出力されてくる行数が1,000行程度ならExcelにて加工する方が楽かと思います。
Excelで取り扱うことの出来る行数を超えることは出来ませんし、行数が多いと時間もかかります。
もしAccess作成に費用が発生するのであれば、Access側の負荷を少なくすべきでしょう。
反対に、ユーザがExcelに慣れていないのであれば、Accessで出来る限り最終形にまで持っていくべきかと思います。
何度も並べ変えを行うのが必要であれば、Excelに処理を持っていくべきでしょう。
データ間の関係が複雑であれば、Accessでクエリ(SQL)をしっかり作成すべきでしょう。
処理が一回きりなのか、毎日同じ処理を繰り返すのかでも異なります。

もし、AccessもExcelもsyrb様が作られるのであれば、加工の頻度が多くなる手前までをAccessクエリ(プロシージャ)で出力し、あとは並べ替え等の加工はExcelで・・・というように切り分けられる方が良いのではないでしょうか。

データベーステーブルの設計時、データとデータの関係が一番薄い部分で切り分けますよね。それと同じで、「手戻りがないのはどの部分か」を考えられれば良いのではないでしょうか。

良いアドバイスでなくて申し訳ありません。

2009年02月05日 10時42分

回答

私は Excelで集計 で作ったことがあります。

某ソフトハウスが作った別システムで サーバ側で集計する システムがありましたが サーバがよくハングアップして使い物にならなかった例があります。 そのときはサーバを強力なものに入れ替えてしてなんとか動くようにしました。
そのときに余ったサーバを使って私のところで同様のシステムを作りました。それはクライアントのEXCELで集計するようにしたのですが、まったく問題ありませんでした。

AccessVBAはよく知りませんがたぶんExcelVBAのほうがきれいな集計表ができると思います。
 

2009年02月05日 12時13分

回答

syrb3さん

こんにちわ。私も、現在の業務ではないのですが、以前、同じようなことが
ありました。そのときは、Access側で必要なデータまで加工し、Excelに出力
して集計という方法をとりました。

みなさまと同じご意見ですが。。。。

2009年02月05日 15時00分

あなたもコメントしましょう!