• ベストアンサー

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

  • Access2003 VBAのDELETEについて

    AccessでOracleとODBC接続してデータを操作するアプリを作成しています。 処理をする際に毎回ワークテーブルを全件削除し、取り込んで本テーブルにインサートする という処理にて、ワークテーブルのデリート文でなぜか10件しかレコードが削除されません。 固有レコードの問題を解消するためにDB側ではID列をPKとして一意に決まるように振っています。 ODBCのリンクテーブルという形で登録しています。 テーブル:TEST_WORK カラム:ID(PK)、コード、名称 CurrentDb.Execute "DELETE FROM TEST_WORK" 上記記述にてなぜか全削除されません。 感じとしては一回目のdeleteでIDが1~9までが削除され、次にdeleteした際は10~99までが削除され・・・というように桁数で変化している気がします。 全て消すにはどのようにすればよいでしょうか?

  • Access ファイル容量を小さくしたい

    いつもお世話になっております。 Accessのファイルをメールで添付したいと思っていますが、サイズが大きくて添付できません。 仕方なく、登録データを削除してファイルサイズを小さくしようと考えたのですが、いくらレコードを削除しても容量が小さくなりません。 どうしたらよいでしょうか? 圧縮という方法もあるのですが、送付先の方のパソコン環境などを考えると、できればそのまま添付がベストなので、何とかファイルサイズを小さくしたいと考えています。 ちなみに現在40MBです。10MB以内に押さえたいのです。よろしくお願いします。

  • ACCESSのレコードを削除してもファイル容量が小さくならない

     ACCESSのデータベースのレコードを削除しても、データベースファイルの容量が小さくならないのですが、これはしょうがないことなのでしょうか。  ACCESSをデータベースとして使いたいのですが、社内LANサーバー上にデータファイルを置こうと思っているので、データファイルの容量を小さくしておく必要があると思うのですが…  データベースファイルの容量が大きくなってきたら、また新たにファイルを作ってデータを移管するなどしなくてはならないのでしょうか。  初心者ですので、できれば平易な言葉でお教えいただけるとうれしいです。よろしくお願いします。

  • ACCESSでデータ削除すると「読み取り専用」と出る

    WINXP、ACCESS2003 ACCESSで二つのテーブルの差分のクエリを作りデータの修正を行っています。 差分のクエリをそのまま、すべて選択してDeleteボタンでデータを削除しようとすると「データは読み取り専用です」と表示され、削除することができません。 レコードを選択して右クリックしても「削除」「新しいレコード」の箇所がグレーになっていて利用できません。 どこかが、読み取り専用になっているのでしょうか? ちなみに、元のテーブルは削除できます。 よろしくお願いします。

  • Accessのデータベースの容量見積もり

    Access2007でデータベースを設計しようとしています。 利用者がレコードを追加していくタイプのもので、ファイル形式はAccess2000です。 ファイルサイズが2GBを超えないように最大件数などを決めていきたいのですが、何件データを入れると大体どのくらいのサイズになるかというのは、どういう計算で求めればいいのでしょうか? ちょっと試しにデータを入力してみると、実際に入力したデータ量と比べてファイルサイズはかなり大きくなっていて、単純にフィールドサイズの合計×レコード件数で求めるというわけではないみたいで困っています。 よろしくお願いします。

  • アクセスのデータ削除について

    Access97を使用して、受電内容のデータを管理しています。 ここ最近データが膨大になりサイズも当然大きくなり、 重くなってしまったので古いデータを削除する事にしました。 テーブルから削除するレコードを選んで「レコードの削除」を 行なってみたんですが、サイズが変わらないのです。 どのようにすればきちんと容量を減らす事ができるのでしょうか? ご指導のほどよろしくお願いいたします。。。

  • Access2010 添付ファイル削除ができない

    Access2010を使っている初心者です。 フォームでデータ型の添付ファイルを配置し、データ添付や削除をできるようにしたいですが、追加・保存は出来るのですが、一旦登録してしまうと、削除を選択してOKにしたら、「レコードは削除されています」とメッセージが出てしまい、添付ファイルの削除が 出来ません。 テーブルでは、添付ファイルの削除が可能ですが、フォームで削除処理がしたいのです。 方法についてお教えください。 宜しくお願いします。

  • Accessの容量について

    170KBほどのAccessファイルがあります。 そのAccessのレポートでデザインビューから 150KBほどのpngの画像をピクチャとして取 りこむと、なぜかAccessの容量が170KBから 22,000KBにまで膨れ上がってしまいます。 なぜ、このようなことが起こるのでしょうか? また、容量を肥大化させることなくpngの画像 をピクチャとして取り込むことは可能なのでし ょうか? 教えてくださいm(_ _)m

  • [Access] テキストファイルをテーブルにリンク

    テキストファイルをテーブルにリンクし、各レコードの余分なスペースをクエリを使わずテーブルの定型支援等で削除する事はできますでしょうか? テキストファイル側を直せばいいというのは解っているのですが、、、ファイルの数が100を超えるので、アクセス側でできると助かります。 各レコードは↓のようにデータの前後にスペースが入っています。 <ここにスペース>abdcd12345<ここにスペース> 何か方法はありますでしょうか。 わかる方、教えてください!

  • アクセス2003 最適化/修復について

    アクセス超初心者です。 前任者が作成したアクセスファイルを使って仕事を始めました。 本当に素晴らしいファイルでマクロや見たこともない関数がたくさん使用されています。 全くアクセスに慣れていないため、わけが分からなくて、ミスが多く、 テーブルのレコードを削除することが異常に多いです。 壊れたらどうしよう。。。と日々不安な中で仕事をしていますが バックアップだけはまめにとりながら仕事をしています。 ところで、最適化/修復についてですが、前任者からこれをするように指示は 受けませんでした。 レコードの削除などは日々繰り返したり、アクセスを立ち上げてはおとして。。。などを 繰り返していてはアクセスのデータが壊れてしまう可能性もあるのでしょうか。 そのために、最適化/修復も適度なペースでしたほうがいいのか?と 素人ながらにおもうのですが。 マクロを組んでたら、最適化しないほうがいいのでしょうか? お手数ですが、素人に分かりやすくご教授をお願い致します。