• ベストアンサー

VBAでEXCELとACCESSについて考える

EXCELLをベースにしたVBAでプログラミングを勉強し、最終的には小さい商店クラスの在庫管理とか商品管理などをやってみたいと思っていました。しかしEXCELLは行制限(65536)があります。 そこでどちみち勉強するならACCESSにしようかと思い、この教えてgooを見ていたら驚くことを発見しました。 ACCESSはデータ件数が1万件程度から極端にレスポンスが悪くなり、また同時入力などがあれば堪えられないほど遅いという意見です。 EXCELLを考えたのはOfficeには必ず含まれているので買わなくてすむが、データ件数の制限がある。ところがACCESSをわざわざ買っても(Professionalにはあるようですが)1万件程度で使い物にならないというのでは、所詮両方とも趣味で使うだけのものか、と思ってしまいました。 実際のところはどうなんでしょうか? 例えば最大端末5台程度の小さい商店でもEXCELLもACCESSも使い物にならないものでしょうか? 無論、トラフィックの多少に影響されるでしょうが、ザクリとしたところでご教授ください。 

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

過去に、Access2000で4人同時入力のシステムを作りましたが、 特に問題ありませんでした。 その時の構成は下記のような感じでした。 OS:Windows2000 CPU:Celeron 500Mz 程度 サーバ役のPCにデータのみのmdbファイル 各クライアントに、フロントエンドのmdbファイル テーブルはファイル共有を使った、リンクテーブル データの件数は、テーブルによっては数万レコードありました。 主にデータ入力業務だったので、複数同時に頻繁にレコードを追加する 事になりましたが、スピード的にも問題ありませんでした。 ----------------------------------------------------------- >例えば最大端末5台程度の小さい商店でもEXCELLもACCESSも使い物にならないものでしょうか? Accessのみでも、十分可能な範囲だと思います。 Excelのみの場合は、複数同時利用の際の処理が困難ですので、 止めたほうが良いでしょう。 ----------------------------------------------------------- Accessでは心配な場合や、将来の拡張を考えるなら、 データベースは「SQL Server 2005 Express Edition」か 「MSDE 2000」を使う。(どちらも無償で利用可能) http://www.microsoft.com/japan/sql/editions/express/default.mspx http://www.microsoft.com/japan/sql/msde/default.mspx これらの解説は下記など参考に。 http://www.thinkit.co.jp/free/article/0603/9/1/ 小規模なシステムなら、無償のエディションでも十分です。 規模が大きくなった際には、上位エディションへの移行も スムーズに行えます。 上記はデータベースのみで、Accessの様に、フォームやレポート等の フロントエンドは持ちません。これらは別途、作る必要があります。 ----------------------------------------------------------- フロントエンドを何で作るのか? となりますが、この際もAccessの方が便利だと思います。 その理由は、幾つかありますが、 ・リンクテーブルやパススルークエリでサーバに接続できる ・クライアント側に一時テーブル等を作ることが出来る ・帳票等を作る際にはAccessのレポートが便利 Accessのみでの開発と同じような工数で開発が可能です。 ----------------------------------------------------------- Excelでもフロントエンドの開発は可能ですが、ADO中心の開発になるので、 プログラミングの工数は多くなります。 特にExcelでの帳票作成は、Accessのレポートと比べると、 面倒な作業になります。 Accessを購入しなくて良いので、費用的にはメリットがあります。 ----------------------------------------------------------- ついでに、補足ですが、サーバ役のPCのOSに関して。 WindowsXPのHomeエディションは同時接続数は 5 です。 Professionalでも、同時接続数 10 です。 これはOS自体の制限で、データベースは何を使っても同はずです。 今回の件ではサーバ役のPCのOSはHomeでも可能だと思いますが、 接続数が増える場合は上位のグレードが必要になります。 10以上の場合はXPではなく、Server用のOSが必要だと思います。 詳しく調べたわけではないので、間違っているかもしれませんが、 OSを選定する際には、この点もよく調べてみて下さい。

Eloisa
質問者

お礼

的確でわかりやすいご教授ありがとうございます。 なるほどそうですか。 やはりAccessですね。 私のPCがXP Home Edition SP2なものですからAccess単体を購入するかProfessionalを購入するかですが、既にVistaですから迷うところです。 実は現在外国にいるので、近々一時帰国の際に購入するためにアドバイスを受けたかったのです。こちらでは英語Versionは売っていますが英語が苦手なものですから。 ただWordとかExcelの英語Versionを利用している人を眺めるだけの感想では、Helpを使わないのならそれほど違いはなく、慣れるだけかなと思ったりします。 それに英語Versionは当地のほうがかなり安く手に入りますから。 いずれにしてもAccessを選択することにします。ありがとうございました。

その他の回答 (2)

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

http://www.mahoutsukaino.com/ac/ac2002/ac2002/kihon2/017.htm アクセスには、色々な意味で、制限がありますね。 画面をExcelで作成し、データベースは、SQL Server、DB2、Oracleを使うというのは、いかがでしょうか? 問居合わせ。入力チェックなどは、VBAで、、、ということになりますが。。

Eloisa
質問者

補足

早速のご回答ありがとうございます。 ご提案の魔法使いの開発工房は、たまたま研究のため読んでいるところでした。「制限がある」というのは一通りの機能をコンパクトにまとめてしまっているからという意味ですね? >画面をExcelで作成し、データベースは、SQL Server、DB2、Oracleを使うというのは、いかがでしょうか? 問居合わせ。入力チェックなどは、VBAで、、、ということになりますが。。 Excelは無料でもデータベース側が高いですね。 No.1さんへの補足質問にも関連するのですが、クライアントはExcel、データベースはAccessということもできるのでしょうか? クライアントの画面は65536行を表示しなければならないことはまずないですから、画面をExcelで作成するというのはいいアイデアだと思いました。しかも入力チェックもできるとなればGooです。

  • j_nishiz
  • ベストアンサー率26% (183/697)
回答No.1

Accessって、実はSQLサーバーにアップグレードできるんですよね。 1万件超えたら、SQLサーバーにDBだけ持って行けばOKです。 あと、Excelも2007から行数制限が大幅に緩和されました。 でも2003まででなれている人には悲惨なほど使い勝手が違ってます。

Eloisa
質問者

補足

早速のご返事ありがとうございます。 >Accessって、実はSQLサーバーにアップグレードできるんですよね。 アップグレードというか、SQLに特化できるという意味ですね? Excel2007に行数制限がなくなったということは初めて伺いました。 使い勝手というのはExcel VBAの使い勝手と理解していいわけですね? 使い勝手は変わっても、使いやすさが向上すればいいと思います。それまでに覚えたことが使えないということでしたら、まだ覚えていない私にはどうでもいいことです。初心者にも覚えにくいということでしょうか?

関連するQ&A

専門家に質問してみよう