• ベストアンサー

ACCESSのファイル容量

おせわになります ACCESSにInTouchよりデータをINSERTしているのですが のデータ容量が テーブルのレコードを削除しても 減りません そういうものなのでしょうか 毎日全件DELETEしてINSERTするのですが 大体1日のデータ量で収まるのかと思っていたのですが どんどん大きくなっていって ACCESSファイルが異常に大きくなってしまっています ファイル容量をある程度で肥大しないようにする方法はありますでしょうか

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

  • ベストアンサー
  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.5

#4からです。 >やはりDBに接続したまま >最適化することは出来ないようですね。 そのまま最適化は出来ませんが#4で書いたようにコマンドラインで最適化だけが出来ますから立ち上げ時とかタスクスケジュールから最適化を呼び出せます。 また、アプリケーション終了後にVBAで最適化用のmdbを呼び出して最適化する。なんてこともしたことがあります。(Access97には終了時に最適化が無いんで辛かったです。)

その他の回答 (5)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.6

DBに接続したままでは最適化できません。 VBではJROを使用してAccess2000形式のファイルを最適化できるので参考までに。 JetEngineオブジェクトのCompactDatabaseメソッドを実行します。 接続文字列に含めるOLEDBプロバイダのバージョンによって最適化されるファイルの 形式が異なります。 [Microsoft Jet and Replication Objects 2.1 Library]を参照します。 Option Explicit Private Sub CompactMDB() ' JRO を使用して Access2000 形式のファイルを最適化する Dim jroJET As New JRO.JetEngine jroJET.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\AAA.mdb" End Sub こんな感じです。

  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.4

ツールメニューのデータベースユーティリティに最適化/修復が有りますのでそれで最適化します。 ACCESS2000でしたらツール→オプションの全般タブに閉じるときに最適化のチェックポックスが有ります。 OracleやSQLサーバの様にテーブルスペースの管理や増量の管理は出来ません。 また、ACCESSのコマンドラインオプションで最適化して終了させることも出来ます。その辺りはACCESSのヘルプに解説がありますのでご参照下さい。 最適化は原則的にDBを閉じないと出来ませんのでVBAやマクロの"DBの最適化"で自分自身を最適化することは出来ません。この場合は一工夫必要ですね。

be-be
質問者

お礼

ありがとうございます やはりDBに接続したまま 最適化することは出来ないようですね

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 Access2000の場合ですが、 メニューの[ツール]→[データベースユーティリティ]→[最適化/修復]をクリックすると最適化出来ます。 また、メニューの[ツール]→[オプション]→[全般]タブの[閉じる時に最適化する]にチェックを入れておけば、毎回閉じる時に最適化してくれます。 最適化をすると驚くほど、容量が小さくなることがあります。

be-be
質問者

お礼

ありがとうございます しらべてみます

  • mellowy
  • ベストアンサー率27% (19/69)
回答No.2

はっきり「こうすれば」とはいえないのですが、 データベースの最適化を行えばいいんじゃないでしょうか?

be-be
質問者

お礼

ありがとうございます

回答No.1

メニュー[ツール]内のどこかに、「最適化する」みたいな項目があると思います。 それをしないとファイルサイズは大きいままです。 今、客先にいるので詳しいことは調べられませんが、たぶん最適化をすれば小さくなると思います。(DBを閉じないとできませんが) プログラム上からでも行えます。

be-be
質問者

お礼

ありがとうございます InTouchからそれができるか調べてみます

関連するQ&A