ユーザはそれぞれ異なったパソコンを使用しています(それぞれのパソコンにはMS Office Professionalがインストールされています)。
全員ドメインユーザで、データベース上のデータの更新作業も行います。
MicrosoftのAccessで要件を満たすことは出来るでしょうか?
使用するときはどのようなイメージになるのでしょうか?(データを更新するときは何のアプリケーションを使ってデータ更新を行うことになるのでしょうか?)
かなり初歩的な質問なのですが…どなたか教えてください。
よろしくお願い致します。
http://q.hatena.ne.jp/1141185260
とかにもあるように、お薦めできません。
PostgreSQLやMySQLをつかって、直につなげるか、ODBCやJDBC経由で接続するのがよいです。
データベースのフロントエンド(ユーザが直に触る所)は、AccessとかオープンソースのOpenOffice.orgのBASEなどあります。大量のデータでないならExcelでもよいかも
一般的な構成としては
Visual Basicと Accessという組み合わせになりますね。
参照、更新を VBでのソフトで行います。
VB側では、ロックにより排他的処理を行います。
ロックの仕方には、悲観的ロックと楽観的ロックなどがあり、ここらへんは けっこう難しいところです。
VBですか…うう…プログラミングは苦手ですw
これってもちろんExcel VBAでも
良いんですよね?
教えて頂いてイメージがわきました!
ありがとうございます。
同時アクセスが少ないようであれば対応できそうですね。
どのぐらいのユーザーで使用されるのかがわかりませんが、Accessをマルチユーザーで使用されるのは下記の理由からお勧めできません。
・レコード単位のロックができない
・Accessのファイル(.mdb)が破損しやすい
このほかにもあるかもしれませんが、大きなところではこういったところです。
下記のURLがご参考になるかと思います。
http://www.naboki.net/access/achell/achell_01.html
http://www.ruriplus.com/msaccess/Exp/exp0160.htm
できればDBサーバーにて構築するほうがいいでしょう。
なるほどです!
1つめのURLすごく分かりやすかったです。
2つめはちょっと難しかったですw
何にせよAccessの場合のデメリットが
理解できました!
すごく助かりました。ありがとうございました。
すみません、情報の訂正と追記で2回目の回答です。(こちらにはポイントは結構です。)
訂正点
レコード単位のロックはAccess2000からできるようになりました。
しかし、そうすることによりデータが肥大化する傾向があります。
追記
Accessの破損対策についての参考URLです。
http://www.mig.co.jp/access/contents/access_kyoyu.htm
http://www.naboki.net/access/achell/achell_02.html
プログラムの作成については、他の方がご回答されているようなイメージとなります。
ありがとうございました!!
MsAccessのメニューからツール>データベースユーティリティ>データベース分割ツールというのがあります。
これを使って、.mdbをテーブルのみのファイルとクエリ・フォーム・レポート・モジュール等を持っているファイルに分割します。
テーブルのみの.mdbをサーバに置いておき、他方のファイルをクライアントに配布します。
その際にリンクテーブルマネージャでテーブルの含まれる.mdbファイルをUNCパス(\\server名\共有名\hoge\fuga\munya_be.mdbてな具合)に書き換えます。
このファイルを開くとネット上からテーブルにアクセスできます。
レコード単位でロックもかかりますが・・、実用になるクライアント数はせいぜい2~3人ですかね。
それ以上にする場合はデータベースサーバを考えたほうが結果が良いと思います。
おお!! そんな機能があるんですね!!
貴重な情報ありがとうございます。
実用人数はやはり数名程度なんですね…
ご返信ありがとうございました。
参考URLありがとうございます!
なるほど…色々難しい問題がありそうですね…
ユーザ数は20人くらいを想定していたので
問題外って感じっぽいです…
やはり一般的なDatabaseを使ったほうが
良いのですね。
大変勉強になりました。ありがとうございます!