- ベストアンサー
Accessのdbについて
ACCESSで閉じる時に最適化にしているのですが、その時にdb1、db2というようにdbファイルがどんどん増えていくのですが、これはどうしたらいいのでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
すいません、No5の補足です モジュールからの最適化は自分自身を最適化できません。 よって、必要mdb数を最適化するmdbを別に作って 1日の最後に実行する方法をとらないといけません。 がんばってください。
その他の回答 (5)
- ats8181oyaji
- ベストアンサー率38% (94/244)
N04の補足に対する回答です 私が実際にしている最適化のロジックです 'データベースの最適化 '最適化の実行 DBEngine.CompactDatabase 最適化前.mdb, 最適化後.mdb, "" '最適化前のDB削除 Kill 最適化前.mdb '最適化後のDBのリネーム Name 最適化後.mdb As 最適化前.mdb 参考にして下さい
- ats8181oyaji
- ベストアンサー率38% (94/244)
こんにちは その方法だと、残念ながら、"仕様"ということになります。 1.面倒だけど、毎回手動で行うか 2.システムが終了する時に、モジュールで最適化するロジックを作って マクロで実行するか だと思います
補足
お返事ありがとうございました。 モジュールで最適化するという方法を出来ればとりたいなと思うので、よろしければどういうような内容で書けばいいのか教えて下さい。 よろしくお願いします。
Accessは2000以降 最適化/修復 になりました。前バージョンでは別々だったので、使いやすかったと思っているのですが、いずれにしても終了時に自動的に最適化/修復を実行できます。ツール オプション 全般タブで終了時に自動的に最適化/修復にチェックを入れます。 お使いのバージョンや、LAN接続の有無でやや違うこともあります。 余分に(勝手に)出来たdb1 db2などは削除しても問題は無いでしょう。 通常LANでは、テーブルをmdbから切り離し共同で使えるようにリンクしてますが、mdbを最適化しても、テーブルまで及びませんので、そのままにしておくと際限もなくサイズがふくれてきます。 そのように使っているなら、テーブルだけ(_be.mdbの拡張子)を立ち上げ、最適化します。 多人数で使う場合は、mdeファイルを使いますが、私は、その日の最後に最適化とバックアップをとるのも仕事です。 ご参考になれば幸いです。
お礼
>余分に(勝手に)出来たdb1 db2などは削除しても問題は無いでしょう。 という事なので安心しました。 どうもありがとうございました。
- ats8181oyaji
- ベストアンサー率38% (94/244)
こんにちは これは、a.mdbというものを閉じるときに、プログラム(VBA)で 最適化をするように組んでいるのでしょうか? x89さんと同じくアクセスのバージョンによって最適化の方法が 違います。97からはmdbを開いた状態で [ツール]の[データベースユーティリティ]から最適化をすると db1.mdbというファイルはできませんが?
補足
説明不足ですみません。 ACCESS2000を使用しています。 [ツール]の[オプション]の[全般]タブで閉じる時に最適化するにチェックをいれて自動で最適化をしています。
最適化に関しては、Access 2000 以降動作が変更になっています。また、それに限らずご質問の際にはバージョンや動作環境を書かれた方が適切な回答が得られやすいと思いますよん。 # 堅いことを言って、とかなつもりではなくて(^^;。 # 確か昔ハマったような記憶はあるんですけど、、
補足
説明不足ですみません。 ACCESS2000を使用しています。 [ツール]の[オプション]の[全般]タブで閉じる時に最適化するにチェックをいれて自動で最適化をしています。
お礼
いろいろとありがとうございました。 早速がんばってみます。