[ Access-VBA ] 現在ロックされているので、更新できませんでした。

Pocket

VBA でアクセスに接続してレコードの挿入・更新・削除を行っているエクセルファイルが吐き出したエラーです。なお、期待されても困りますので結論をいいますと、ロックした原因はわかっていません。原因を調査する気もありません。残念です。無念です。

スポンサーリンク

エラーダイアログ

実行時エラー -2147467259 (80004005)
現在ロックされているので、更新できませんでした。

ロックエラー

ロックエラー

初対面のエラーです。誰かが残していったエクセルマクロがエラーを出しています。一番イヤなパターンです。原因を聞かれても知りません。わかりません。

アクセスだってそれほど扱ったことはないのです。そこで、今回はアクセスはロックや共有関連には弱いということで割り切ることにしました。一瞬の判断です。見事です。自画自賛です。

.ldb ファイル

ロックを強制的に解除する方法はないかと思いましたが、ロックしているテーブルは VBA のデバッガで既に分かっています。なるべく無茶な対応はしたくありません。より悪いほうに転ぶ可能性もあります。次の瞬間、平和的な解決方法を思いつきました。

誰がアクセスファイルに接続してテーブルをロックしているかは .ldb ファイルをテキストエディタで開くとわかります。アクセス元のPC名の一覧を作って、その端末で起動している MDB ファイルに接続する可能性のあるエクセルファイルをすべて一旦終了させます。

エクセルをすべて終了させると見事に .ldb が削除されました。ラッキーです。

対応はこれで完了です。ロックは解除されました。

そのうちロックされるかもしれません。そうならないように祈るだけです

日頃の行い

.ldb ファイルが残ったままである時には、画面では終了したと思ったエクセルがタスクマネージャではゾンビとして生き残っていたりするパターンも考えられます。探すことが面倒なのです。

そもそもアクセスが何らかの異常な状態になっているかもしれません。でも今回は、.ldb ファイルは消えました。日頃の行いというヤツでしょうか。

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>