質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

2回答

14038閲覧

MS_Accessでほかのユーザーによってロックされていますと表示される

kamekame0912

総合スコア17

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

1クリップ

投稿2020/10/06 09:04

現在、ms_accessを使用しています。2020.10.5ごろからエラーが出るようになって解決できないでいます。現象としてはレコードを移動する時や、更新クエリを使用した時(実行はフォームのボタンにマクロを登録して行っています)に発生する事が多いです。メッセージとしてはクライアントPCによって異なるのですが私の使用しているPCでは「ほかのユーザーによってロックされているので、保存できませんでした。」と出ます。他PCではタイムアウト云々のメッセージが出ることもあるようです。午前中は出ない事が多いのですが、午後はメッセージが出て先に進めません。使用状況としてはデータ保存用のファイルが一つあり、それにリンクテーブルで20台くらいのPCで接続している状態です。すべてのクライアント側のファイルを閉じて実行してもメッセージが表示されます。データ保存用のファイルをコピーして名前も変えて誰も接続してない状態にしてリンクテーブルを作り直して接続してもダメでした。
AccessはMicrosoft 365 Apps for businessです。ファイルはすべてWindows Server 2012 R2 Standerdのサーバーにありネットワークを介してクライアントから接続しています。
どなたか解決方法をご存知の方が居られたらアドバイスいただけないでしょうか?
PCを使える時間が限られているのでタイムラグがあるとは思いますが、不足している情報がありましたらご指摘下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ad.sys.soleil

2020/10/07 03:16

>すべてのクライアント側のファイルを閉じて実行してもメッセージが表示されます。 1台でもでる訳ですよね。 2020.10.5からWindows Or AccessにMicrosoftアップデート掛かっている事はないですか? 掛かっている様でしたらそれ関連の情報をググッて見る手もあるかと思います。
kamekame0912

2020/10/07 04:49

私もそれが気になったのですが2020/09/12Microsoft Windows(KB4574727)の更新プログラムが最新の様です。
ad.sys.soleil

2020/10/07 05:28 編集

そうですか。 2020.10.5より以前のパックアップファイルは無いのですか。 9月末とか。昨年とか。 パックアップ動かしてOKでしたら、何らかの原因で壊れているのではないですか。 パックアップOKなら、これを運用側にしてデータのみインポートを掛ければ直りそうな気がします。 p.s. 当然ですが、データベースの最適化/修復はやられてますよね。
kamekame0912

2020/10/07 05:43

はい、最適化、サーバーの再起動、データのインポートも行っています。
ad.sys.soleil

2020/10/07 06:22 編集

パックアップの運用OKなファイルへデータのインポートしてもダメ。 外部データの取り込みからインポート(ファイル丸ごと)ではなく、 テーブルデータ削除後に、クエリの追加で遣られていますか。 (テーブル構成を弄らずに、データのみインポート。コマンド的にはinsert * from select *です。作成メニューのクエリデザインでも同じ事ですが) p.s. 前提としてパックアップファイルはバックアップのままで、実際に動作確認してOKの判断をする必要あります。 p.s. 以上でもダメであれば、後は入力データ値に問題があることになります。 例えば、Web画面からコピペした時に利用できない文字が入ってしまった。 文字化けや空白文字などの目視確認になるかと思います。 TextファイルやExcel等に出力して変な値ないでしょうか。 エラーが出ている訳ですから、そのエラーがでる対象のレコードを、探し出して正常値へ手入力で再度入力してみてどうでしょうか。(全部消してから入力です。)入力値の末尾に変な空白文字等が付いている事もあります。 ちょくちょく出ていると言う話なのでマスター系が怪しいかも知れません。
kamekame0912

2020/10/07 06:23

長く使っていてテーブルが数十個あるのでそれは避けたかったですが、考えないといけないですね。他に方法があればいいんですが。
ad.sys.soleil

2020/10/07 06:42 編集

確実に再現する様であれば、値入力から一行毎にステップでデバッグし、どの行でエラーとなるのか見つけて、対処することになると思います。 ただし「ほかのユーザーによってロックされてい・・・」このエラーなかなか癖の悪いエラーで、ステップ終了後に出たりで見つからない事もあります。 パージョンの問題、OSとの兼ね合いでも出る事があり、メーカーのソフト的なバグ報告が無い場合には厳しいです。ファイル破損が一番の候補でしょうか。 一旦Excelに吐き出して、Accessに一時的にインポート、その後に運用へコンバートなど一手間掛けた方が確実かも知れません。頑張って下さい。
guest

回答2

0

2020.10.5ごろからエラーが出るようになって解決できないでいます。

どのような変更をされましたか?

ファイルは共有モードになっていますか?
リンクテーブルの状態で、共有モードにするには、リンクテーブルマネージャーでないとできません。
VBAでは属性を指定しない場合は、共有モードになります。

該当のエラーメッセージは、保存していない状態で更新しようとしても発生したと思います。

DoCmd.RunCommand acCmdSaveRecord

を適宜行ってみてください。
マクロなら「レコードの保存」です。

投稿2020/10/06 09:38

編集2020/10/06 09:53
sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kamekame0912

2020/10/06 10:19

変更は特に加えていません。VBAは使用せずすべてマクロで行っています。最近は排他モードにする作業はなかったので共有モードになっていると思います。試しに更新したいテーブルにデータを貼り付けようとしても同じメッセージが表示されます。
sazi

2020/10/06 14:10 編集

> 試しに更新したいテーブルにデータを貼り付けようとしても同じメッセージが表示されます。 では、排他モードになっていて、かつロックファイルが残っているんだと思います。 今まで更新がぶつかる事はない状態だったのでしょう。今回は使用していた人のPCが落ちたり、ACCESSが落ちるような類で、ロックファイルが残ってしまったのではないでしょうか。 ロックファイルはメモ帳等で開く事ができます。 記録されている使用者でファイルを開くか、ロックファイルを削除すれば従来の状態に戻ります。
kamekame0912

2020/10/07 02:33

今まで処理がぶつかる事はあって、データの競合を知らせるメッセージが出た事があります。更新クエリの処理は一日一回行う作業で使用しておりぶつかる事のない状況で行っています。ロックファイルについてはまた同じ事が起こった時に確認してみます。
guest

0

新規のAccessを作成して既存のAccessからまず「すべてインポート」してみてください。
Accessのファイルは2GBを超えていませんか?

あと確認なのですがデータ用Accessファイルを複数人で別Accessからの操作で使用している
という認識で合っていますか?

Accessの同時実行は10人程度までしか対応できませんが...
(10人超えたらエラーが必ず発生するわけではないのですが)

投稿2020/10/06 09:20

kuma_kuma_

総合スコア2506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kamekame0912

2020/10/06 10:27

新たなファイルを作ってリンクテーブルを作成し直してもダメでした。サイズは最適化しても100〜200MBで2GBにはまだ余裕があります。他ユーザーからの接続を切ってから作業しても同じ事が起きます。これまで十数年今のファイルを使用しており、リンクテーブルでの運用も10年近くなります。今の台数での作業もここ数年変化はありませんので台数の問題ではないような気がします。
kuma_kuma_

2020/10/06 10:38

クライアントからの接続をすべて停止して データ保存用のAccessファイルをコピー等保存 Accessファイルの名前が 「データ保存用.mdb」の場合「データ保存用.ldb」 「データ保存用.laccdb」の場合「データ保存用.laccdb」 というファイルがありませんか? 存在した場合そのファイル削除してみて下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問