アプリ版:「スタンプのみでお礼する」機能のリリースについて

おせわになります

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

A 回答 (6件)

#4からです。



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

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

こんな感じです。
    • good
    • 0

ツールメニューのデータベースユーティリティに最適化/修復が有りますのでそれで最適化します。


ACCESS2000でしたらツール→オプションの全般タブに閉じるときに最適化のチェックポックスが有ります。

OracleやSQLサーバの様にテーブルスペースの管理や増量の管理は出来ません。

また、ACCESSのコマンドラインオプションで最適化して終了させることも出来ます。その辺りはACCESSのヘルプに解説がありますのでご参照下さい。

最適化は原則的にDBを閉じないと出来ませんのでVBAやマクロの"DBの最適化"で自分自身を最適化することは出来ません。この場合は一工夫必要ですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/11 17:08

こんにちは。

maruru01です。

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

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

お礼日時:2002/10/11 16:38

はっきり「こうすれば」とはいえないのですが、



データベースの最適化を行えばいいんじゃないでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2002/10/11 16:37

メニュー[ツール]内のどこかに、「最適化する」みたいな項目があると思います。


それをしないとファイルサイズは大きいままです。

今、客先にいるので詳しいことは調べられませんが、たぶん最適化をすれば小さくなると思います。(DBを閉じないとできませんが)

プログラム上からでも行えます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/11 16:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す