• ベストアンサー

ACCESS97でテーブルをロック

ACCESS97を使用しています。 例えばEXCELを使用する時に、他の誰かが使っていた場合 「~によって編集中です。メッセージを表示しますか?」 といったメッセージがでてきます。 そのように、ACCESSのテーブル単位で使用を制限することは可能でしょうか? 要望することは Access97のDBを複数のユーザーで使用したいのですが あるユーザーが使っている時は、他のユーザーには使用を制限すると共に 何らかのメッセージを表示。 また、使用していたユーザーが終われば自動的に別のメッセージに表示したい のです。

  • cdma
  • お礼率36% (91/247)

質問者が選んだベストアンサー

  • ベストアンサー
  • aptiva
  • ベストアンサー率36% (193/529)
回答No.2

プログラム側で制御する必要があるでしょうね。 まず、テーブルを使用しているかどうかを調べるテーブル(ロック情報テーブルとします)を作ります。 該当するテーブルを使うフォームを開く時にロック情報テーブルを確認し、他の端末で使って無ければロック情報テーブルに使用中のフラグをセットして目的のテーブルを使うフォームを開く。 そのフォームが閉じるときに、ロック情報テーブルを元に戻す。 ロック情報テーブルを調べた時に他の端末で使用中だった場合は、その旨を表示して処理をキャンセルする。 私はこのようにやっています。 自動的にメッセージの表示は、Timerイベントを利用してロック情報テーブルを適時チェックすればいいでしょうか?

cdma
質問者

お礼

回答ありがとうございます。 "テーブルを使用しているかどうか" のチェック方法はどうすればいいのでしょうか?

その他の回答 (1)

回答No.1

こんにちは、ats8181oyajiです テーブル単位の排他制御はできません。 簡単に設定するのでしたら ヘルプの[目次]-[データベースの共有] にいろいろと方法がのっていますので ご自身で一度ご覧になってください。 では

関連するQ&A

  • ACCESSのテーブルロックについて

    テーブルのロックについて教えて下さい。 ACCESS2000にてテーブル作成クエリを作成し、その作成したテーブルをフォームで参照しています。 そのフォームを開いたままで、再度、同じテーブル作成クエリを実行すると、 「テーブル○○は現在ほかのユーザまたはプロセスで使用されているので、ロックできませんでした。」 というメッセージが表示され、クエリを完了することができません・・・ これを回避する(クエリを優先する)方法、設定があったら教えて下さい。 宜しくお願いします。

  • Access2003 テーブルロック

    Access2003で任意のテーブルをロックすることはできますでしょうか? 1.ユーザAがテーブル1にアクセスしにいき、テーブル1をロック 2.ユーザAは処理が終了したらテーブル1のロックを解除 1~2の処理の間はユーザA以外のユーザがテーブル1にアクセスできないようにしたいのです。 ロックファイルを使用するやり方もあると思いますが なるべく簡単に実現したいので、 なるべくロックファイルやアプリケーション変数は使いたくありません。 (サーバーが落ちた場合に永久にロックされてしまうので) 何かよい方法をご存知の方がいらしたらご教授お願いします。

  • アクセスのテーブルを隠す?

    他のアクセスDBを見たのですが、何故かテーブルが空っぽでクエリー、フォーム、レポート等だけが見えます。 これってどうなっているおでしょうか? また、表示させることできるのでしょうか? よろしくお願いします。

  • テーブルにアクセス制限はかけられますか?

    MySQLはユーザー毎にDBへのアクセス権は設定できますが、ユーザー毎にテーブルへのアクセス権(例:テーブルAを参照でき、テーブルBは参照できない等)を設定する方法はないでしょうか?

    • ベストアンサー
    • MySQL
  • Access2000で排他ロックをかけるには?

    こんにちは。 Access2000を複数のユーザーで使用したいのですが、 上手く排他ロックがかからなくて困っています。 使用状況を説明しますと、テーブルのみの入ったデータベース(DT)を サーバーに置き、使用するユーザーのコンピュータにはフォームや レポートの入ったデータベース(PG)を置いて、それぞれサーバーから テーブルをリンクしています。 PGには複数のフォームがあり、例えばフォーム(1)を誰かが使用しているときは 他の人はフォーム(1)は使用できないけど、他のフォーム(2)、フォーム(3)の 使用はできるようにしたいのです。 どなたかご存知の方いらっしゃいましたら回答お願いします。

  • アクセス97のテーブルを直接いじれなくしたい

    アクセス97です。 NTにあるDBを複数人で共有して使用しております。 クライアントはWin-95とWin-2000です。 フォームでデータの読み書きはできるのですが、 ときどき、テーブルを直接覗いてデータ変更したり、削除する人が います。 更新日付が変わらなかったり、データが一部壊れたりして困っています。 テーブルのデータやクエリーやモジュールを直接いじれなくする方法は ないでしょうか? 現在、MDEファイルにしているので、フォームはいじれません。 表示オプションでテーブルは隠しモジュールにしています。 でも、知っている人は簡単に解除できますよね。 困った。 ワークグループをつくり、アクセス権を設定するのはやりたくありません。 以前、管理に多大の勢力を使った経験があるので。 何か簡単にテーブルやクエリーをいじれなくする方法はないでしょうか? よろしくお願い致します。

  • Access2000について。

    Access2000にて、複数ユーザーが使用するような システムを作っています。 フォーム上からレコードを削除しようとした場合に、 他のユーザーがそのレコードを編集中 (レコードセレクタがエンピツの状態、テーブルへの 更新はされていない状態)かどうかを 取得して、もし他のユーザーが編集中であれば レコード削除は行わない、というような ことができるのでしょうか? アドバイス 宜しくお願いします。

  • ACCESSに同時アクセス(編集)をしたい

    教えてください。 ACCESSのDBに複数のユーザが同時にアクセスして、 データを追加・編集したいのですが、 やはり、不可能でしょうか?

  • ACCESS2000でテーブルをVBAからテーブルを読み込む方法

    ACCESS2000を使っています。 以下の指定をした場合、「ユーザ定義型は定義されていません」のメッセージが出て、コンパイルが通りません。 なにかインストールや設定が必要なのでしょうか? Dim db As Database Dim rs As Recordset Set db = CurrentDb() Set rs = db.OpenRecordset("テーブル名", dbopendynaset) ヘルプ等を自分なりに参照してみたのですが、わかりません。教えてください。

  • アクセスのレポート参照について

    アクセス2000です。 ネットワーク上にテキストファイル(毎日自動更新)があり、 これをリンクテーブルにしています。 メニューを設け、ボタンひとつでレポート表示できるようにしてあります。 オプション→詳細→共有モード にはしているので、複数ユーザーでアクセスを開くのは可能ですが、 誰かがレポート表示をしていると、他のユーザーはレポート表示時に 権限が無いというエラーメッセージ出てレポート表示できません。 複数ユーザーで同時にレポート表示するのは可能なのでしょうか?

専門家に質問してみよう