- ベストアンサー
ACCESS 複数のフォームから同一テーブル参照
いつもお世話になっております。MS-ACCESSにおいて同一のテーブルを利用したフォームとレポート等を開こうとすると、「テーブル '<テーブル名>' は現在ほかのユーザーまたはプロセスで使用されているので、ロックできませんでした。」となります。このエラーを回避する方法はわかりますでしょうか?一応、共有モードで開くようには設定されているのですが・・・・よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
もしそのフォームとレポートが、「同じテーブルを元にしたクエリ」をレコードソースにしているようでしたら、それぞれのクエリの設定も確認されてみてはいかがでしょうか。 (テーブルをレコードソースにしている場合は、無効ですが・・・) <確認方法> 1)クエリをデザインビューで開く 2)メニューの「表示(V)」→「プロパティ(P)」をクリックし、プロパティシートを開く 3)表示対象フィールド以外の場所をクリックした後、プロパティシートの「レコードロック」の設定を確認 設定が「全てのレコード」になっていたら、「しない」か「編集済みレコード」に変更してみて下さい。 (この設定はクエリ個別の為、メニューの「ツール(T)」→「オプション(O)」での設定よりも優先されたのではなかったかと思いますので)
その他の回答 (2)
- O_cyan
- ベストアンサー率59% (745/1260)
#1の方が書いてありますが オプションの詳細で 既定の開くモード:共有モード 既定のレコードロック:ロックしない レコードレベルでロックして開く が設定されていれば複数のクライアントから開くことができます。 排他モードでレコードにアクセスしている状態のPCはありませんか? 先に排他モードのクライアントがMdbを開くとファイルロックされてしまい他のPCから開けなくなります。 その辺の確認をしてみてください。
補足
現在このエラーが起きてしまう状況は同一のユーザでおきてしまっています。クエリの設定も、「レコードロックしない」に変更しましたがやはり同じエラーが出てしまいます。オプションの詳細ではやはり、 既定の開くモード:共有モード 既定のレコードロック:ロックしない レコードレベルでロックして開く になっています。他のファイルではこの現象が起きないのに何故これだけこの状態になるのでしょうか?困ってしまいました。
- mama_mama
- ベストアンサー率30% (129/429)
レコードロックがかかっているんだと思うんですが。 「ツール」の「オプション」の「詳細タブ」に 「既定のレコードロック」と「レコードレベルでロックして開く」があります。 初期値は、 「既定のレコードロック」は「ロックしない」 「レコードレベルでロックして開く」にチェックです。 何らかの理由で、わざわざ変更しているんだと思います。 初期値に直す前に、なんでそうしているのか、理由を調べないと、他の処理に影響してくる可能性がありますよ。 または、VBAでその処理だけ、変更することもできるはずですから、(コマンドまでは調べていないけど)そうなさってもいいかと思います。
補足
>「既定のレコードロック」は「ロックしない」 >「レコードレベルでロックして開く」にチェック ためしてみたのですが、同じエラーメッセージが出てしまいます。ただ、その設定にしたところエラーメッセージがOfficeアシステントで出るようになりました。やはり不可能なのでしょうか?
お礼
解決しました。ありがとうございます!!クエリの設定は大丈夫だったのですが、フォームの設定でレコードロックが「全てのレコード」に設定されていたためでした。勉強になりました。NO.3さんのヒントのおかげです。これで開発を進めることができます。本当にありがとうございました。