• 締切済み

【Access】排他モードで利用時のタイムアウト

社内の部署で共有のアクセスデータベースを作成し、複数の人が同時に編集できないよう、 「排他モード」か「レコードロック」の設定を考えていますが、「排他モード」にした場合、ファイルを 開く時間(タイムアウト)の設定は可能でしょうか?

みんなの回答

回答No.1

ファイルサーバ上にAccessファイルを置いてある。 ファイルサーバのOSはWindows系である。 という仮定でのお話です。 排他モードで開くには AccessのGUIメニューから選択して行う場合と、 起動時オプションの、/excl を使用して "Accessのインストールフォルダ\msaccess.exe" アクセスファイルのフルパス /excl というBatファイルを各ユーザーに配布して行う場合が考えられます。 http://office.microsoft.com/ja-jp/access-help/HA010166605.aspx 後者の方が各ユーザーの手間が省けます。 排他モードで開かれた場合には、 Accessのロック情報ファイル(拡張子がlaccdb や ldb)が作成されません。 共有モードであればファイルが作成されるのでメモ帳などで 開けばどのPCが開いているか分かります。 開きっ放しで外出してしまうバカヤローがいた場合などでは 各PCを廻って確認したいところですが スクリーンセーバの復帰時にパスワードを要求される場合などでは 確認のしようもありませんし、強制電源断も問題の解決にはなりません。 なので、あなたや他のユーザーが、管理者権限が与えられていれば コマンドプロンプトを「管理者として実行」で開き Openfiles /query /s サーバ名 | find "laccdb" などとして 誰が開いているか特定し、強制的に切断する必要があります。 http://www.atmarkit.co.jp/fwin2k/win2ktips/306openfiles/openfiles.html ※あなたが時間のかかる更新クエリなどを実行中で 終了までにお茶しようと離席、その間に誰かが上記方法で強制切断 の憂き目に遭う可能性もあり得ますので、信頼できる人にだけ教えときましょう。 標準ユーザーではOpenfilesは使えません(Win7 Pro の場合) なお、たとえばですがユーザーが10分間何もしてなかったら 自動的に閉じる・・・という設定は有りません。 フォーム上での限定になりますが レコード移動時イベントなどでタイマーリセット タイマー時にAccess終了・・・などというのをVBAで作れば可能かもしれませんが ユーザーがどのようにファイルを使用しているか全て洗い出す必要が有りますし 処理が煩雑です。 (私は実装したことはありません。単なる思い付きです) 別案としては共有モードで開くようにして http://support.microsoft.com/default.aspx?scid=kb;ja;285822 を参考にして 標準モジュールに Function InUseDB() Dim Cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim i As Long, j As Long Set Cn = CurrentProject.Connection Set rs = Cn.OpenSchema(adSchemaProviderSpecific, _ , "{947bb102-5d43-11d1-bdbf-00c04fb92675}") rs.Filter = "computer_name <> '" & Environ("computername") & "'" If (rs.EOF And rs.EOF) = False Then MsgBox "PC名 " & Replace(Trim(rs!computer_name), Chr(0), "") & " が使用中" DoCmd.Quit End If rs.Close: Set rs = Nothing End Function としておいて Autoexec マクロに上記InUseDBを登録 すでに自分のPC以外の人がいたら終了する・・という方法もあります。 もちろん、メッセージボックスが出た段階で、Ctrl + Break を押された場合や Shift キーを押しながら立ち上げた場合は無力ですけどね。 以上ご参考までということで。

関連するQ&A

  • ACCESSで排他モードにするには

    ACCESS97からACCESS2000に移行しました。 ネットワーク上にデータベースを置いて複数で使っています。 私がフォームやレポートをデザインで開こうとしているとき、他の人が同じデータベースを開いていると(同じフォームやレポートを開いてなくても) 「現在、このデータベースには排他モードでアクセスしていません。デザインの変更は保存できません。」 と表示されてしまいます。 そこで「ツール」「オプション」「詳細」で「排他モード」を選んだり、「開く」で「「排他モードで開く」を選んでみたのですが、メッセージは変わりません。 ヘルプやマイクロソフトのHPも読んでみましたが、「共有モード」にすべきか「排他モード」にすべきか、いまひとつわかりません。 ACCESS97の時はこんなことはなかったのですが、2000って「こうゆうもの」なんでしょうか。 よろしくお願いします。

  • Access2000の排他モード?

    N0.62665で全く々質問があったのですが、回答アドバイスにとどまり、その処置に到っていなかったのでこちらでまた質問させていただきます。 ネットワーク上でAccess97を使っていましたがAccess2000にバージョンアップしました。すると複数人数が開こうとしたとき、一番最初に開いた人以外は、 「現在このデータベースには排他モードでアクセスしていません。変更しても保存できない可能性がありますがよいですか」 とのメッセージが出て、データの変更を行ってもそれを保存することが出来ません。 ツール→オプションの排他・共有の設定など変えてみたのですが、変化無し。 以前のようにみんなが使えるようにするにはどこの設定をどう、変更すれば良いのでしょうか? よろしくお願いします。

  • Accessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。

    「Access 2000」を使用して顧客管理用のデータベースを作成し、複数のパソコンで使用できるように原本を共有ドキュメントに入れて、ネットワーク上の他のパソコンではショートカットを作成し、それぞれがそのデータベースを開いたり編集したり出来るようにしています。 しかし、特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードでアクセスしていません。変更しても、後で保存できない可能性があります。」と表示され、中身を編集したり保存出来ないようになっています。 たしかに、「規定の開くモード」は「共有モード」になっており、排他モードにはしていないです。 この設定で会社の大多数のパソコンでは上記メッセージが出ることなくちゃんと編集ができるのに、どうして特定のパソコンだけこのようなメッセージが表示されて編集を保存できないのでしょうか? 現在の設定のまま使えるようにするための方法はありますでしょうか? まだAccessを使い始めたばかりで、記載した情報も少ないかもしれませんが、何か分かりましたら教えてください。

  • Access 共有モードについて

    こんにちは。 Accessの共有モード設定質問です。 Access2000仕様で製作し、ネットワーク上にAccessデータベースがあり2~3人で入力作業しています。 一番古くてAccess2003でAccess2016やAccess2019の人もいます。 私のPCはAccess2010です。 現在の設定は下記の通りです。 Accessのオプション→クライアントの設定→詳細設定 ・既定の開くモード:共有モードにチェック ・既定のレコードロック:ロックしないにチェック ・レコードレベルでロックして開く:チェック これを、他の人が開いている時は読み取り専用でのみ開けるように するにはどう設定を変えればよろしいでしょうか? 現在は、複数で同時に開けるため声をかけあって作業する時もあります。 何卒ご教授宜しくお願い致します。

  • 排他モードで開けない

    こんにちは。 os:vista、office:2003です。 自分で作成したアクセスのmdbファイルに フォームを新規で作成しようとしたところ、 「現在、このデータベースは排他モードでアクセスしていません。 変更しても、後で保存できない可能性があります。」 となってしまいます。 なので排他モードで開こうと思い、 ファイル→開く→ファイルを選択→排他モードで開く をやっても 「他のユーザーがこのデータベースを開いているか、 排他モードで開く権限がないため。○○を排他モードで開くことはできません。 このデータベースを共有モードで開きます。」 となってしまい、結局フォームを作ることができません。 ・パソコンはインターネットとしか繋いでないです。(共有はしていない) ・mdbと同じフォルダ内にldbと言う拡張子のファイルがあり、鍵マークが付いています。これが原因でしょうか? 何かわかる方なんでもいいのでご回答よろしくお願いします。

  • 共有モードと排他モードとどちらで開けばいい?

    共有フォルダに入ってるアクセスファイルを複数人で開きたい時は 共有モードと排他モードとどちらで開けばいいのでしょうか? 複数人で共有するから、共有モードですか? そのファイルは3人で同時に開き、 そのうちの1だけがデータの入力をし、 他の2人は閲覧のみです。

  • 排他モードとか共有モード

    アクセスの排他モードとか共有モードとかよくわからないのですが どういう時に排他モードが良くて どういう時に共有モードが良いのでしょうか? 常に一人でアクセスは使っています。

  • アクセス データは保存される?排他モード???

    レコードのデータを変更したり、新規にデータを入力した後に、 CTRL+Sを押すと、 『ほかのユーザーによってファイルが開かれているため、 変更したデザインを 保存したり、新しいデータベースオブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、ファイルを排他モードにする必要があります』 と表示されますが、 これはデータは保存されてるのでしょうか? デザインが保存されないだけでしょうか? でもデザインビューなどでいじってません。 また上記のメッセージから、今は排他モードでは開いてないことがわかりますが、 であれば何モードで開いてるのでしょうか? 共有モードでしょうか? それを開いてる状態で確認することは可能ですか?

  • Accessでの排他制御

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

  • 「排他モード」とはどういう意味でしょうか?

    日本語がよくわからないので教えてください。 アクセスにパスワードをかけようとしたら 「排他モードで開いてください」と言われました。 排他モードで開いて無事パスワードをかけることはできたのですが 排他の意味がわかりません。 ・読み取り専用モード ・共有モードは 意味はわかります。 宜しくお願いいたします。