10代と話して驚いたこと

アクセスの排他制御に関して質問です。
ネットワーク上のサーバーにアクセスのMDBを置いて、複数の人が更新目的で開く場合、排他制御はどうなるのでしょうか?
テーブル単位で、ロックが掛かるのでしょうか?
もしそうであれば、複数の人が同時に使えないのですが、回避策はありませんでしょうか?

A 回答 (5件)

Windows2000 Access2000の環境


サーバにテーブルのみのmdbファイル
ローカルにテーブル以外のmdbファイル(テーブルはサーバのテーブルをリンク)

予算の都合で、このやり方で4人同時使用していましたが、問題なく動いてました。

Access2000以前は酷かったように記憶してますが、2000以降はずいぶん改善されているのではないでしょうか。SQLサーバなどのサーバ製品と比べると貧弱かもしれませんが、小規模なシステムならAccessでも十分使えると思いますよ。
    • good
    • 4

記憶違いだったらすみませんが、ACESSって開いてる状態のときに別のファイル(LDB?)が生成されて、他のユーザーが開こうとしても開けなかったような気がするんですけど。


自分で開いておきながら、不正終了した後にMDBを開こうとしても別ファイルを消さない限り開けなかったような気がします。
元々1人しかアクセスできないアプリケーションの仕様だと思います。
昔々に開発していた頃の記憶なのであいまいですみません。
    • good
    • 1

>ネットワーク上のサーバーにアクセスのMDBを置いて、



というのは、あくまでもデータ部分のMDBをサーバに置いて、各クライアントにプログラム部分のMDBなどからテーブルのリンクなどで共有して使うということですよね?

まさか、サーバに置いたMDBにデータとプログラムを入れて、そのフォームなどを複数のクライアントから共有して開こうとはしていませんよね。
こうした使い方をするとかなりの高確率でプログラムが壊れます。

基本的にACCESSはスタンドアロンで使うことが前提のプログラムです。サーバに置いて使うなら、MSDEなりSQLServerを使うのが一般的です。
その段階で初めて排他制御の話になってきます。
    • good
    • 1

>テーブル単位で、ロックが掛かるのでしょうか?


フォームの設定で変更できます。

フォームのプロパティ → データ → レコードロック

デフォルトは 共有的ロック で同じレコードを同時に更新しても大丈夫です(後から更新した人にメッセージが出ます)。

テーブル単位のロックも可能です。

詳しくはヘルプを見てください。
"RecordLocks/レコードロック" プロパティ
    • good
    • 1

Access 2000 以上で、



ツール -> オプション -> 詳細 -> レコードレベルでロックして開く

にチェックが入っていれば、レコード単位ロックのようです。

そうでなければページ(2KB)ロックかな?

ユーザーが多いか、重要な業務の場合は、SQL Serverなどを使ったほうが良いですよ。(クライアントはAccessでも良いけど)
    • good
    • 0
この回答へのお礼

ありがとうございます。
ユーザーが多いか、重要な業務の場合は、SQL Serverなどを使うことにします。(クライアントはAccessでも良いけど)

お礼日時:2006/12/28 09:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報

このQ&Aを見た人がよく見るQ&A