- 締切済み
AccessのLANでの共有
LANでつながっている1台のマシンのMDBを同時に複数台で開くことはできますか? その場合、台数の制限やデータの更新などに問題はありませんか?
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- arata
- ベストアンサー率49% (139/279)
もう一つ、Access共有のマイナス面を言っておきますね。 Accessは、C/Sではなくファイル共有なので、ネットワーク上のトラフィックが多くなります。最悪の場合輻輳(データが送れなくて、データを失い、再送が何度も起こっている状態)がおきますので、ご注意ください。 わかりやすく説明すると、C/S(クライアント/サーバー)は、お客さんがサーバーに対して依頼をして、結果を受け取る形で、ファイル共有は、MDBを自分のところへ持ってきて、自分で処理するものです。 例えば、ピザのデリバリを電話で頼んで、持ってきてもらうのが、C/Sで、ファイル共有の場合は、PIZZA屋さんを自分の家まで運んで、自分で、自分の家のキッチン(道具や材料はPIZZA屋さんのものが使える)でPIZZAを作るのがACCESSのファイル共有なのです。 極端な説明かな?(笑い)
- rickbon
- ベストアンサー率0% (0/2)
ご参考までに経験談をひとつ。 LAN環境でAccess97を使ってました。 サーバーにテーブル、クエリー、フォーム等一式含むMDBをどかんと置き、常時接続クライアントは5台~7台。 ファイルサイズは60MB位です。 入力によるデータ更新は、一台だけにしてくれとお願いはしても忙しい時には無視されて2~3台同時ということもたまにはあります。 てなことを一年ほどやっておりましたが、幸いなことにデータが壊れたことは一度もなくよく働いてくれました。 ただし、たまにロック状態になることと突然コントロールの背景色がハデな色に変わるというお茶目な現象は起こりました。 みなさんおっしゃるように閲覧だけなら問題ないと思いますが、あまり大きなシステムや同時更新を繰り返す仕事では避けた方が無難だと思います。
- arata
- ベストアンサー率49% (139/279)
お客さんのところで、 ・データ量がギガクラス ・データを持つMDBと、フォームやクエリーを持つMDBに分けて、前者はサーバーに、後者を使用者のパソコンに置くようにして使用 ・更新は、1台のパソコンから ・クライアントは、2~30台 と言う形で運用されているところがありますが、定期的にデータが壊れるそうで、定期的にバックアップ(ようするにコピー)を取って、書き戻されています。 データが壊れることを前提に使用されるのであれば、なんとか使える?ってことでしょうか。 お勧めとしては、MSのSQL*ServerのサブセットであるMSDEにデータを置いて、ACCESSからODBCでリンクして使用すると言うものです。ACCESSのデータをMSDEのデータへアップサイジングするツールもACCESSについていますので、試してみてはいかかでしょう? もちろん、同時使用者数が多いとか、データ量が多い場合、SQL*Serverなどの本格的なデータベースの使用をお勧めします。 MSDEについては,参考URLをご覧ください。
- mnabe
- ベストアンサー率33% (427/1283)
出来るけど辞めた方が良いでしょう。 理由1: Accessでは、ロック機能がまっとうに動きません。複数の端末からの更新作業が重なった時には、データが壊れる可能性があります 理由2: もともとスタンドアローン環境での使用を前提に作られている為に、ネットワーク環境での使用では、どんな問題があるかマイクロソフトもわかっていない。ネットワーク環境で使用する場合には、1枚アプリケーションを噛ませるなどの工夫が必要。その工夫の為の人件費を考えると、SQL Sereverが買えてしまう。 理由3: Accessの癖で、数MB(10MB程度)になるようなMDBの場合、不思議な動作を行うので、大規模になりそうなら最初から設計を考えた方が良い。データベースを分けるなど...。特にネットワーク間で共有している場合には、この不思議な動作が、5MB程度から現れる。
marimo_cxさんの回答通り詳細に関しては書籍を参考していただくとして、大まかな点だけ。 共有モードで開くことは出来ますが、同時使用することはオススメしません。というか絶対にしてはいけません。 必ずといっていいほどデータベースが壊れますので。 AccessだけでC/Sのシステム(厳密にはちがいますが)を構築する場合は、サーバーとなるマシンにテーブルのみのMDBを配置し各クライアントにはクエリー、フォーム、レポートなどが入ったMDBを配置し、サーバーのMDBのテーブルをリンクします。 フォームを作成する際もサーバーのテーブルを直に連結させるのではなく、非連結のフォーム(もしくは構造の同じワークテーブルをクライアント側に作ってそれを連結させる)にして、ボタンをクリックさせた場合などにDAOを使ってサーバーのテーブルに書き込む処理をVBAで記述した方がレコードロックの問題も解決できます。 ただこの場合でもAccessだけで運用する場合、同時に接続するユーザーが多ければ多いほど当然のことながらパフォーマンスに影響します。規模などにより何台までというのはわかりませんが、自分の場合、常時5台程度までならAccess、それ以上になるとSQL-Server(またはAccess2000に付属のMSDE)を使用しています。
うーん、LANの環境にもよると思うんですけど・・。 サーバーがあるならサーバーの設定にも関係あるでしょうね。 できるとは思いますよ。 ただ本当に同時に開いたり閉じたりはできないと思います。 1台目が開いてしまった後、2台目で開くのはできるんじゃないでしょうか。(閉じるのも同じ) 台数の制限はサーバーの設定次第かな・・・? データの更新ですか? 複数台のうちデータを更新させるマシンは特定の1台ですか?それとも複数台から更新させるのですか? 特定の1台だけ更新し、他のマシンは読むだけというならあんまり問題はないでしょう。(特定の1台はバックアップをとっておく) 複数台からそれぞれ更新するというなら、ACCESS以外のデータベースの方がいいかも・・・。
- marimo_cx
- ベストアンサー率25% (873/3452)
この件はAccessの入門書でも大体出ているようですので、 目的の情報の載っている入門書を購入すると、他にも沢 山の情報が載っていて良いかと思います。