• 締切済み

Accessでの排他制御

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

みんなの回答

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

Windows2000 Access2000の環境 サーバにテーブルのみのmdbファイル ローカルにテーブル以外のmdbファイル(テーブルはサーバのテーブルをリンク) 予算の都合で、このやり方で4人同時使用していましたが、問題なく動いてました。 Access2000以前は酷かったように記憶してますが、2000以降はずいぶん改善されているのではないでしょうか。SQLサーバなどのサーバ製品と比べると貧弱かもしれませんが、小規模なシステムならAccessでも十分使えると思いますよ。

回答No.4

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

  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.3

>ネットワーク上のサーバーにアクセスのMDBを置いて、 というのは、あくまでもデータ部分のMDBをサーバに置いて、各クライアントにプログラム部分のMDBなどからテーブルのリンクなどで共有して使うということですよね? まさか、サーバに置いたMDBにデータとプログラムを入れて、そのフォームなどを複数のクライアントから共有して開こうとはしていませんよね。 こうした使い方をするとかなりの高確率でプログラムが壊れます。 基本的にACCESSはスタンドアロンで使うことが前提のプログラムです。サーバに置いて使うなら、MSDEなりSQLServerを使うのが一般的です。 その段階で初めて排他制御の話になってきます。

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

>テーブル単位で、ロックが掛かるのでしょうか? フォームの設定で変更できます。 フォームのプロパティ → データ → レコードロック デフォルトは 共有的ロック で同じレコードを同時に更新しても大丈夫です(後から更新した人にメッセージが出ます)。 テーブル単位のロックも可能です。 詳しくはヘルプを見てください。 "RecordLocks/レコードロック" プロパティ

  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

Access 2000 以上で、 ツール -> オプション -> 詳細 -> レコードレベルでロックして開く にチェックが入っていれば、レコード単位ロックのようです。 そうでなければページ(2KB)ロックかな? ユーザーが多いか、重要な業務の場合は、SQL Serverなどを使ったほうが良いですよ。(クライアントはAccessでも良いけど)

nantekotta555
質問者

お礼

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

関連するQ&A