Access

Microsoft社が提供するデータベースの1つにAccessがあります。Accessは複数のユーザで同時に使用することができるマルチユーザー対応のデータベースなのですが、時としてこのAccessで作ったmdbファイル(2007以降はaccdbファイル)は破損することがあります。Accessの開発を行っている人ならおそらく当たり前のように知られていることでしょう。

しかし、マルチユーザーで使用していないでシングルユーザーで使用していてもmdbファイルは破損することがあります。完全に使用できなくなってしまう場合もありますが、使用することはできるが部分的に破損、動作がおかしいなどの状況になることも多々あります。そんな破損の原因というのはどうして起きるのかを今までの経験と勘(?)で自分なりにまとめてみました。この原因が全てではないと思いますが、参考になればと思います。

プログラム的な問題

AccessはExcelやWordのように開いただけでは使用することができません。利用目的に応じた形式でAccessを作り込み、mdbファイルを作って初めてその目的を達成することができます。その作り込みではテーブルやフォームの作成はもちろん、いろいろな動作を設定するマクロやVBAでプログラムを書いていく必要が亜あります。そのプログラムの作り方によっては破損する原因になる時もあります。

破損しないように作り込むのは当たり前なのですが、そうは言っても何かしらのバグや不具合により予想もしなかった動きにより破損する場合もあります。自分で作って、自分が使っている場合にプログラムの問題であれば対処する方法も比較的わかりやすいのですが、他人が使用した時に破損した場合は、どのようなことを行って破損したのかを追求するのにちょっと大変です。

けど、自分のプログラムによる破損であれば回収することは比較的簡単でしょう。

Accessのバージョンアップによる破損

Accessは旧バージョンで作られたmdbファイルでも動くように互換モードを搭載しています。通常はこの互換モードで旧バージョンのmdbファイルは動くのですが、VBAなどでゴリゴリとプログラムを書いて作られていると参照するライブラリが異なることにより正常に動作しない場合もあります。

持ち回りによる問題

Accessは他のデータベースとは異なり、作成したデータベースはmdbファイルという1つのファイルで作られます。その為、USBメモリなどに入れて通常使用するパソコンから別のパソコンへ移動させて使用することも可能です。

mdbファイルはそのファイルだけで動作しているわけではなくAccessというアプリケーションソフトがあって初めて使用することができます。パソコンが変わることによりそのmdbファイルを動かすAccessも多少なりとも変わっている場合があります。例えば同じAccess 2003でもそのバージョンが微妙に異なることは当たり前。その微妙に異なったバージョンでmdbファイルを動かすことにより、動作が変わってしまい、最悪は破損することもあります。

Microsoftアップデートによる破損

Windowsは定期的にアップデートを行います。設定によりアップデートを阻止することもできるのですが、常に最新、安全な環境にしておこうとする場合はこのアップデートを行う必要があるのですが、このアップデートによりWindows内のライブラリが変わることがあります。

このWindowsのアップデートによりmdbファイルもしくはAccessで使用していたライブラリが変わってしまい、mdbファイルが正常に動かなくなって破損する場合があります。

対策は

根本的な対策としてはAccessのデータベースを使用しているmdbファイル、環境はできるだけ変えないのが一番ですが、なかなかそうはいかないのが現状です。その為、Accessのmdbファイルはフロントエンド(ユーザーが触るインターフェースなど)とバックエンド(ユーザが入力したデータを格納するデータベースの部分)を分けるようにし、尚かつ、それぞれのmdbファイルを定期的にバックアップすることが一番かと思います。

何か不具合がある時にその都度直すことができればいいですが、完全に破損してしまったらバイナリファイルである限り手の施しようがありません。フロントエンドは変更がない限り、触ることない場所(CD-ROMなど)に保存しておき、バックエンドに関しては定期的なバックアップを行うことをおすすめします。

もし、Accessの破損が怖くて使用することに抵抗がある場合は更に上位版でもあるSQL ServerやフリーのMySQL、PostgreSQLなどを使用する必要がありますが、他のデータベースでも破損しないとは限りません。また、開発する工数が掛かることやメンテナンスが必要なことは変わりありません。

1つまたは2つのファイル単位で使用することができるのがある意味魅力でもあるのがAccessです。6年前に開発したAccessをいまだに使用してくれているお客さんもいらっしゃいます。もし、Accessの開発を依頼したい場合は是非御相談ください。(ちょっと宣伝(^^ゞ)

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。