カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Micosoft Office Accessのファイルが壊れる

この記事は最終更新日から1年以上経過しています。

Windows7のサポートが終了して7ヶ月が経ちました。
皆さんはWindows10への移行はお済みでしょうか?

私も公私共にWindowsを利用しており、Windows10でほぼ問題なく使用出来ているのですが、一つだけ問題があります。
それはOfficeのAccessで作成しているデータベースファイルが壊れるということです。

壊れるといってもそのファイルが使えなくなるわけではありません。
データベースの内容に矛盾が生じ、修復の作業が必要になってしまうわけです。
データベースでは常に最適化する作業が必要になってくるのは当たり前なのですが、最近この状況が頻繁に発生するようになってしまいました。

ちなみにこのようなメッセージが表示されます。

初めは[Accessで発生するメモリー不足エラー]で紹介した事象が起こっていました。
解決したようにも思えましたが、しばらくすると壊れるようになってきました。
そしてその頻度も日を追うごとに頻繁に起こるように…。

それを解消するために色々とやってみました。

  1. データ元を新規ファイルへインポートしてファイル作成のやり直し
  2. リンクするデータ元のACCESSバージョンを統一してみる(2000形式→2002・2003形式)
  3. 新しいOfficeで利用しているのが駄目かと思いバージョンを落としてみる(2016→2013)
  4. VBでの接続の際、DAOでの接続方法を変更してみる
  5. データ元のファイルが大き過ぎることが原因かもしれないので分割して1ファイルの容量を削減してみる
  6. DAO接続が駄目かもしれないので全てADOに変更してみる
  7. 条件式でNullを判定するとエラーが発生することがあるらしいので、条件式の部分は全てNz関数を使ってNullにならないようにしてみる

しかし、解消することが出来ませんでした…。

そこで開発元であるMicrosoftに問い合わせ出来ないかと調べましたが、
法人の場合、インストール等初期設定のみのサポートが付いているだけで、
使用上のテクニカルサポートは有償になりますとのことでした。
また、その有償サービスについては一問一答形式で1件49,900円(税抜き)だそうです。
なかなかのお値段ですよね。

無償の範囲でのサポートが望めるのはMicrosoftコミュニティです。
コミュニティは掲示板形式になっており、Microsoftの担当者も見ていて可能な限り対応してくれるとのことです。

早速、有用な情報がないかを探していたら…見つけました!
Access でデータベースが ‘矛盾がある状態’ にあると報告される

ここで紹介されているコマンドを早速実行してみました。

REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v DisableLeasing /t REG_DWORD /d 1 /f

NET STOP SERVER

NET START SERVER

検証期間はまだ2日ほどですが、嘘のように壊れません!
Microsoftの方も言われているように根本的な解決ではないかもしれませんが、これまで7ヶ月間の苦悩がひとまず解決されると思うと気持ちがすごく楽になりました。
同じ事象でお悩みの方がおられましたら是非この情報を参考にしていただければと思います。

この記事がお役に立ちましたらシェアお願いします
6,034 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です