VB+EXCELでのアプリ開発


阪神隠れファン  2005-10-23 23:46:01  No: 126749

こんにちわ。阪神隠れファンです。

プログラム的な話しでは無いのですが、みなさんからの意見やアドバイスを頂ければと思っています。
今までの経験では、VC+ORACLE、VB+ORACLEの組み合わせによる開発しか行なってなく、今回初めてVB+EXCELのアプリ開発を行なおうとしています。
EXCELは・・・基本的に簡単な資料用のグラフ作成や設計書作成の一ツールでしか活用をしてただけで、データベースとして扱うのは経験がありませんでした。

これから開発しようとするユーザー規模は100ユーザー程度なのですが
果たしてEXCELがデータベースの役割を果たせるの?と疑問に思っています。
ネット上では、VBからEXCEL操作やデータ抽出・書き込みなどのサンプルがあったので、「出来るんだな」とは思いましたが(Microsoft製品同士だから、それぐらいの連携させるAPIはあるだろとは思ってました)、ただデータベースとしての機能(例えばスキーマという概念)というのは、あるのでしょうか?私個人的な見解ですが(間違ってたらすいません)、個人的に使用するデータ量もさほど多くない(個人のスケジュール帳とか?)分に関しては問題無いと思っていますが、100ユーザーでデータを共有するという面においては、「誰かEXCELのファイルをオープンしたら他の人使えないのでは?(書き込めない)」と排他に関することが頭に浮かんでしまいます。読み込だけであれば、この辺は問題ないのかなと思っているのですが・・・。

同じように EXCELをデータベースとして利用している方がいらっしゃいましたら、他のデータベース(すいません、ORACLEの知識しかないのですが)と比べて注意すべき点がありましたらアドバイス頂ければと思っています。

長文にて失礼致しました。


オショウ  2005-10-24 00:02:25  No: 126750

根本的な部分で勘違いされているようです。
EXCELをADO等でアクセスさせる方法は存在していますが、同時に複数の
アクセスを行うようにはなっていません。
あくまで1ユーザーしかアクセスが許されていませんので、100ユー
ザーが同時?にアクセスするなら、一般的なデータベースエンジンにす
るべきです。
また、レコード数は、EXLCEの1シートの行数がMAXで、それ以上の
レコード数は扱えませんし、制限が多いです。

データベースエンジンとしてと言う部分と、100ユーザーのアクセス
に耐えるものとなれば、SQL Server 以上でしょう。

以上。


阪神隠れファン  2005-10-24 00:28:25  No: 126751

オショウ さん、早速のアドバイスありがとうございます。

>あくまで1ユーザーしかアクセスが許されていませんので、100ユー
>ザーが同時?にアクセスするなら、一般的なデータベースエンジンにす
>るべきです。

”1ユーザーのみのアクセス”というのは、”書き込みを行なう場合だけ”と
いう意味ですよね?誰かがファイルを開いている場合に他の人が開こうと
した時は、読み込み専用で開くことはできるので制限付きでアクセスは可能かと。(間違った理解であれば申し訳ありません・・・)

>また、レコード数は、EXLCEの1シートの行数がMAXで、それ以上の
>レコード数は扱えませんし、制限が多いです。
MAXレコード数:65534レコード    MAX列数:260 だったハズ。

>データベースエンジンとしてと言う部分と、100ユーザーのアクセス
>に耐えるものとなれば、SQL Server 以上でしょう。
そういったデータベースだとありがたかったんですが・・・。
もう一度、よく顧客と打合せをする必要がありそうです・・・。
(フリーのDBエンジン MySQLもあるわけですから)


特攻隊長まるるう  2005-10-24 03:02:55  No: 126752

そんなのここで聞くなよ。馬鹿じゃねーの


ガッ  2005-10-24 03:36:13  No: 126753

> そんなのここで聞くなよ。馬鹿じゃねーの
ココにも厨の生き残りが…(`・ω・´)

それだけ言うのも何なので、ちょっと調べたこと書きます。
1  ExcelファイルをExcelで開く
2  VBでOpen .. Access Read で同じファイルを開く
これでも、ちゃんと開けました。
読み取りはブロックされないみたいですね。


特攻隊長まるるう  2005-10-24 18:08:13  No: 126754

>MAXレコード数:65534レコード    MAX列数:260 だったハズ。
Excel のヘルプで『仕様』とキーワード検索すれば出てきますが、
シートのセルの限界が 65,536 行、256 列です。

>”1ユーザーのみのアクセス”というのは、”書き込みを行なう場合だけ”と
Office がネットワーク環境での使用を前提として開発されているか?
ってのも考えたほうが良いでしょうね。結局、ただのファイル(しかも開いてる
ユーザに対し色々情報を持つそこそこ重いアプリ)に100ユーザーがアクセス
する時点でいつ壊れても不思議でない気がします。
接続環境が悪くてアクセスが途切れたら?クライアントが落ちたら?
プログラムの不具合で、いつまでも Excel のプロセスが残ったら?
Excel で対応するのは難しいと思います。


ひろ  2005-10-24 21:04:38  No: 126755

Excelでやるのが間違いですね。
Accessでもこれだけ多くのユーザーの同時アクセスは多分破綻します。
(時々DBが壊れることを想定した上で作る覚悟があれば別ですが)

データベースを使いましょう。何を使うかは要検討ですが。

#ユーザー数の数え方が問題ですね。同時アクセスが最大何人なのかで、
#要件がだいぶ変わると思います。


もげ  2005-10-25 04:19:22  No: 126756

あくまでもファイル共有で使用するのですよね。
サーバサイドでオートメーションなどではなく。
http://support.microsoft.com/kb/257757/ja/

http://hp.vector.co.jp/authors/VA003334/ado/exceltechasdb.htm
http://support.microsoft.com/kb/257819
http://support.microsoft.com/default.aspx?scid=kb;en-us;326548
http://tigerbliss.com/th-using_ado_with_excel_files-vbf-217783.html
http://support.microsoft.com/kb/319998

DBMS機能をすべて手作りするくらいの勢いでやれば可能は可能でしょうが、
おそらく素直にOracle使うより高くつくと思います。
それでよければ、Excelじゃなくても、CSVでもただのテキストファイルでも
成立するかもしれません。

個人的には、そんなプロジェクトには関わりたくないですね。


シロクロ  2005-10-25 04:27:52  No: 126757

安価な値段でシステムを作りたいというユーザの要望は
わかります。
しかし、システムを提供する方としては、後々トラブルを
頻発するようなものを提供するのは間違っていると思います。

推測ですが、ユーザはExcelなら既に手元にライセンスがあるからと
いう理由だけではないでしょうか。
それであれば、MySQLやその他PC上で稼動するような
他のDBを使用してみては如何でしょうか。


阪神隠れファン  2005-10-26 22:26:58  No: 126758

返信が遅くなり申し訳ありませんでした。
ガッさん、特攻隊長まるるうさん、ひろさん、もげさん、シロクロさん、
貴重なアドバイスや意見をありがとうございます。

まず、システムの安定性を第一に考えDBを使用することを強く勧めたのですが、
庁舎内の制約上で無理であるという結論になりました。

この場で、このような話をするのはタブーであることを承知で記載し申し訳ありませんが
エンドユーザ⇒入札企業⇒私という流れで作業が進んでいます。
その際、入札企業がエンドユーザに納品する形式として外付けハードディスクで納品する
ようです。(私としては考えられない事なのですが・・・)
これは、エンドユーザのサーバーにアプリケーションに関わるものは一切インストールし
てはいけないという制約の下、DBのインストールが却下されたそうです。

そんなこともあり、サーバーという大きな物ではなく、せめてデータ管理用のPCを一台
購入することを勧めました。
まだ返答は頂いてないく何とも言えない状況なのですが、これがクリアされれば MySQL の
使用を検討します。ただ、これも却下された場合は・・・逃げます^^;
というのは冗談で、はっきり出来ないものは出来ない、ただ制約がついてよいのなら、
ここまでなら出来る、と言った説明を行なっていきます。

#このような案件は、本当に初めてで正直関わりたくないプロジェクトです・・・。
#この場で、このような内容を掲載し本当に申し訳ありませんでした。


  2005-10-27 11:34:32  No: 126759

横からすみません。

>これがクリアされれば MySQL の
>使用を検討します。

ちょっと待ってください!> 阪神隠れファンさん

RDBってそれぞれ製品ごとにかなりクセやツボがありますから
>VC+ORACLE、VB+ORACLEの組み合わせによる開発しか行なってなく
とご自身でもはっきり言われてますし、
MySQLを絡めたいろんな提案を講じ、かつそれをなんなく実装していける
とはとても思えません。
ちょっとフリーのRDBだからって軽視してませんか?
少なくとも簡単なデータの入出力をやるプロトタイプくらい
作って言われているのでしょうか?
ただ「MySQLっていうのがあったな」と机上の知識だけで言われてなければ
よいのですが。

それに全体的におっしゃっていることが自己弁護すぎて
たいへん苦しいです。
プロの現場では信じられないくらいの顧客のわがままや
妙なしがらみごとが普通によくあるものです。
なのでそれをいちいち苦労話として誇示されてもねえ、、、
と思うのは私だけ?


いな  2005-10-27 18:15:31  No: 126760

>その際、入札企業がエンドユーザに納品する形式として外付けハードディスクで納品するようです。(私としては考えられない事なのですが・・・)

別に納品媒体が、
CDだろうが、DVDだろうが、MOだろうが、DATだろうが
はたまたシステムがインストールされたPC1台だろうが
なんの不思議には思いません。
「私としては考えられない事なのですが」の理由に非常に興味があります。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加