• ベストアンサー

Accessのdbについて

ACCESSで閉じる時に最適化にしているのですが、その時にdb1、db2というようにdbファイルがどんどん増えていくのですが、これはどうしたらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

すいません、No5の補足です モジュールからの最適化は自分自身を最適化できません。 よって、必要mdb数を最適化するmdbを別に作って 1日の最後に実行する方法をとらないといけません。 がんばってください。

t-tomo
質問者

お礼

いろいろとありがとうございました。 早速がんばってみます。

その他の回答 (5)

回答No.5

N04の補足に対する回答です 私が実際にしている最適化のロジックです 'データベースの最適化 '最適化の実行 DBEngine.CompactDatabase 最適化前.mdb, 最適化後.mdb, "" '最適化前のDB削除 Kill 最適化前.mdb '最適化後のDBのリネーム Name 最適化後.mdb As 最適化前.mdb 参考にして下さい

回答No.4

こんにちは その方法だと、残念ながら、"仕様"ということになります。 1.面倒だけど、毎回手動で行うか 2.システムが終了する時に、モジュールで最適化するロジックを作って マクロで実行するか だと思います

t-tomo
質問者

補足

お返事ありがとうございました。 モジュールで最適化するという方法を出来ればとりたいなと思うので、よろしければどういうような内容で書けばいいのか教えて下さい。 よろしくお願いします。

noname#49904
noname#49904
回答No.3

 Accessは2000以降 最適化/修復 になりました。前バージョンでは別々だったので、使いやすかったと思っているのですが、いずれにしても終了時に自動的に最適化/修復を実行できます。ツール オプション 全般タブで終了時に自動的に最適化/修復にチェックを入れます。  お使いのバージョンや、LAN接続の有無でやや違うこともあります。  余分に(勝手に)出来たdb1 db2などは削除しても問題は無いでしょう。  通常LANでは、テーブルをmdbから切り離し共同で使えるようにリンクしてますが、mdbを最適化しても、テーブルまで及びませんので、そのままにしておくと際限もなくサイズがふくれてきます。  そのように使っているなら、テーブルだけ(_be.mdbの拡張子)を立ち上げ、最適化します。  多人数で使う場合は、mdeファイルを使いますが、私は、その日の最後に最適化とバックアップをとるのも仕事です。 ご参考になれば幸いです。

t-tomo
質問者

お礼

>余分に(勝手に)出来たdb1 db2などは削除しても問題は無いでしょう。 という事なので安心しました。 どうもありがとうございました。

回答No.2

こんにちは これは、a.mdbというものを閉じるときに、プログラム(VBA)で 最適化をするように組んでいるのでしょうか? x89さんと同じくアクセスのバージョンによって最適化の方法が 違います。97からはmdbを開いた状態で [ツール]の[データベースユーティリティ]から最適化をすると db1.mdbというファイルはできませんが?

t-tomo
質問者

補足

説明不足ですみません。 ACCESS2000を使用しています。 [ツール]の[オプション]の[全般]タブで閉じる時に最適化するにチェックをいれて自動で最適化をしています。

noname#2685
noname#2685
回答No.1

最適化に関しては、Access 2000 以降動作が変更になっています。また、それに限らずご質問の際にはバージョンや動作環境を書かれた方が適切な回答が得られやすいと思いますよん。 # 堅いことを言って、とかなつもりではなくて(^^;。 # 確か昔ハマったような記憶はあるんですけど、、

t-tomo
質問者

補足

説明不足ですみません。 ACCESS2000を使用しています。 [ツール]の[オプション]の[全般]タブで閉じる時に最適化するにチェックをいれて自動で最適化をしています。

関連するQ&A