怖〜いACCESSのお話

ACCESSは、突然壊れることがある。
運用中よりも、開発中によく壊れる。
過去に何度も手戻りした経験があるので、こまめにバックアップを取るようにしていた。
症状としては、VBAコードを修正後、保存のため上書きすると、保存できませんとメッセージがでる。
一旦このメッセージが出ると、データベースの最適化をしても効果なし。

壊れた場合の対処法としては、新規にmdbファイルを作成し壊れたmdbのオブジェクトを
インポートする。

重症の場合には、特定のオブジェクトで停止しそれ以後のインポートができなくなる場合があった。

要するに、MDB自体バイナリファイルなので、壊れたらどうしようもないということなのである。
ACCESSは、オブジェクトやコードを一旦コンパイルし中間データをバイナリの形でMDB内に保持している。
一旦コンパイルした中間データは、ソースとの整合性を確認することはないようで、中間データが
何らかの原因で壊れた場合どうしようもない。

この症状については、既知の問題なのだが、対処方法があまり知られていない。

デコンパイルすることにより回復可能な場合が多い。

デコンパイルの方法は、...(めんどくさ!)
msaccess.exe "ドライブ\パス\ファイル名.mdb" /decompile


但し、デコンパイルの前には、念のためファイルのバックアップを取っておくことを推奨します。


この問題については、以下ページにて詳細に解説されています。ご参照ください。

YU-TANG's MS-Access Discovery
http://www.f3.dion.ne.jp/~element/msaccess/index.html

右クリックから簡単デコンパイル
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsContextMenuExt.html

YU-TANGさんいつも使わせていただいています。ありがとうごさいます。