Accessは壊れやすいと言われています。
今まで何も問題なく動いていたのに、急に見慣れないメッセージが表示されて困ったことがあるかもしれません。
そこで、出来るだけ壊れなくする方法や、困った時の対処方法について記載します。
また、動きが遅くて困った時の考え方についても触れます。
以上のメッセージが表示された場合は、Accessが壊れている可能性があります。(というか壊れています。)
この場合は「最適化/修復」で使用可能になる可能性が大きく、ほとんどの場合は正常に戻ります。
このメッセージの場合、壊れていて、しかも「最適化/修復」で復旧できる確立は、残念ながら低いです。
※これはAccessに限ったことではないですが、いざという時に備えてバックアップはしっかり取りましょう。
Accessは本来1人で使用するものとして開発されたため、複数人による同時使用では問題が発生しやすいようです。
※ただし、同時使用人数が多くなればなるほどパフォーマンスに影響が出るので、先ほどの例は「壊れないかもしれないけど」実用上問題があると言えます。
同時使用人数が増えた場合、SQL Serverにアップグレードした方が良いでしょう。
最近のSQL Serverの場合、いくつかあるエディションの中でも以前のMSDEの位置付けと言えるExpressならデータベースの容量が4GBまでと制限はありますが、
MSDEと違ってSQL Server Management Studio(SSMS)でデータベースの操作ができて(こちらも制限はありますが、かなり色々なことができます)、
小規模なシステムなら実用上問題無いレベルなので、検討してみる価値は十分にあると思います。
(テーマがAccessが壊れやすいと言われている事についてなので、タイトルに「壊れる原因」とありますが、 テーブルやフォーム、クエリなどすべてが入っている1つのmdbを共有サーバーに置いて、これを複数で使用するようなことがない限り、 それよりも「同時使用人数=パフォーマンスへの影響」の方が大きいです。)
その他、データベースの設計等ありますが、これらでかなり回避できます。
ここでは最低限の対策として、プログラム用とデータ用にmdbを分けた場合とします。
エラーが発生している人のPCのデスクトップ等に置いて使用しているプログラム用mdbに問題があると言えます。 この場合は、使用している「プログラム用mdb」を一旦削除して、問題の無いプログラム用mdbをコピーして、そのmdbを起動することで正常に動作するようになります。
※いつでもコピーできるように共有サーバーのどこかに置いておくと良いです。
「データ用mdb」に問題がある(壊れている)可能性があります。 この場合は「最適化/修復」を行って下さい。 ただし、「最適化/修復」を行ってもエラーが出て、「データ用mdb」が復旧できないという最悪のケースも無いとは言えないので、 バックアップは必須と考え、取っておくようにして下さい。
※あるタイミングで手動で取る方法もありますが、忘れることもあるし、取るタイミングもまちまちだとあまり良いとは言えません。
ちなみに私が開発する場合、以下のようなリクエストがよくあるため
その日の最初にプログラム用mdbを起動した人が自動的に「最適化/修復」とバックアップが出来るように、プログラムを作成します。
(Access2003で説明します。)