• ベストアンサー

アクセスが重い!!

アクセス超初心者です。 フィールド数12、レコード数100程度のファイルがあります。非常に少ないレコード数なのですが、ファイルの重さは200MBです。 一体何が原因か分からなかったので、テーブル、クエリなど、中にあったものすべてを削除してみたのですが、ほぼ全くファイルのサイズが変わりません。 他の似たようなファイルでは、レコード数が1000以上あっても2MB程度の重さです。 意味のよく分からない質問だとは思いますが、よろしくお願いいたします。 アクセス2002です

  • mizum
  • お礼率68% (13/19)

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

  • ベストアンサー
noname#102878
noname#102878
回答No.2

ファイルが大きくなる原因ですが、Excelでイメージしてみると理解しやすいです。 Excelにデータをある程度入力したあと、途中の何行かのデータを消すとします。 この時に行を削除するのではなく、セルの値を削除します。 次に新しいデータを追加入力するとします。 新しいデータは「空いている行」に登録することはできず、「一番最後の行」に登録されてしまいます。 DBではこのように、どんどん膨らんでいく運命にあります。 しかもDBは自身の中にある各種オブジェクト(テーブルやフォームやレポート)などもレコードのように管理したがりますから(レコードを管理する仕組みが得意なのだから当然か)、「フォームやレポートを作ってみたけれど削除して新しいものを作ろう」というのを繰り返しても大きくなっていきます。 このようにして途中に空いてしまった空間を削除してサイズを詰めるのが「最適化」です。

mizum
質問者

お礼

ありがとうございます。 まだアクセスに慣れていないので、フォームやクエリを作っては消したり作り直したり、かなりいじってました。 かなりいじっていたのに1回も最適化をしていなかったからどんどん重くなっていったんですね。 丁寧に説明をしていただき感謝です! これからはこまめに最適化します。 とっても勉強になりました、ありがとうございました。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

mdbをAccessで開いて、メニューから最適化をしてください。 小さくなりますよ。

mizum
質問者

お礼

すごい!一気に500KBになりました!! 助かりました。ありがとうございます。

関連するQ&A

  • アクセスのクエリでレコード削除ができません。

    アクセス超初心者です。 テーブルを商品コードでくっつけて、クエリのデザインビューで表示しました。 いらないレコードを削除しようとしたところ、できません。 くっつける前の、テーブルではできますが、クエリで実行させ、レコードを削除しようとしたところできません。 どうしたらよいのか教えてください。 あと、もうひとつ、クエリで、出力したいフィールド名をドラッグしたあと、削除したいときには、どうすればよいでしょうか? 表示しないなら、できるのですが・・・。削除がわかりません。 よろしくお願いいたします。

  • Access 2007で、テーブルからレコードを削除するクエリを作りた

    Access 2007で、テーブルからレコードを削除するクエリを作りたい。 具体的には、テーブルAのフィールドF1とテーブルBのフィールドF2があるとします。このとき、テーブルA中の各レコード(仮にXとします)であって、そのF1の値と同じ値をF2に持つレコードがテーブルBに含まれている場合は、(テーブルAから)そのレコードXを削除するという処理をしたいのです。ややこしいと思いますが、これをクエリやマクロで作ることはできるでしょうか? 私はVBAを知らない初心者です。上の処理も文章で書くと理解してもらえるかどうか不安ですが、だれか助けて下さい。

  • ACCESSの最適化でエラー発生

    教えてください。 ACCESSのDBを最適化したら、DB内のテーブルにMSysCompactErrorというテーブルができ、中身をみると以下のようなメッセージが入っていました。ここ1~2年問題なく、週に1回バックアップを取るときに最適化してきましたが、こんなエラーは初めてです。最適化する前のDBのアクセスは問題なく動いてますが(全てのデータを使ってるわけではないですが)原因がわからず困っています。 DBのファイルサイズは最適化前449.5MB→後351.1MB(先週は418.664MBでした。)でレコード数は4,227,841件テーブル数3個です。 最適化で直接エラーメッセージが表示されたわけでなく、終わってファイルサイズがいつもより小さいので気がつきました。 ErrorCode ErrorDescription ErrorRecid ErrorTable -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1611 フィールド 'Description' が見つかりませんでした。 xxTBL -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1611 フィールド 'Description' が見つかりませんでした。 xxTBL -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1611 フィールド 'Description' が見つかりませんでした。 xxTBL -1003 フィールド 'Description' が見つかりませんでした。 xxTBL -1605 フィールド 'Description' が見つかりませんでした。 xxTBL

  • アクセス削除クエリ「複雑すぎてできません」のエラー

    テーブルA(フィールド40個)があります。 削除クエリで、From *Aテーブル(すべて) フィールド30個 について Where  0 (数字ゼロ) の条件を入れます。 これを実行すると「クエリが複雑すぎてできません」が でてきます。 フィールド30個についてすべて0のレコードを削除したいのです。 どういう条件を入れればいいでしょうか?

  • Accessのファイルサイズ縮小について

    Access 2000で作成したmdbファイルを Access 2013環境で使用しています。 ・テーブルのみのmdbファイル(1)があります。  mdbファイル(1)の中には、テーブルオブジェクトが1つあり、フィールドが1つ、  フィールドサイズは255です。レコード件数は、36万5000件程度あります。 ・フォームやクエリ、マクロ、mdbファイル(1)と  リンクテーブルでつないでいるmdbファイル(2)があります。 mdbファイル(1)のファイルサイズが、90MBに達しており mdbファイル(2)を開いたり、何か処理させるのを遅くしているのではないか と思っています。 他の方の質問をチェックしましたが、結果は 最適化について  オプション→現在のデータベース→閉じるときに最適化する→チェックON済み  手動で最適化する→変化なし。 MDBをMDEに変換する  Access 2013では、バージョンが違うので変換できないようです。  accdb形式に変換→accde形式に変換しましたが、変化なし  (そもそも、ファイル(1)はテーブルのみで、マクロやプロシージャは無いので、  意味が無かったかも) となっており、対処法が見つからなくて困っています。 何か良い案はないでしょうか。

  • Accessのクエリでレコード追加

    Access初心者です。 バージョンは2010をつかっています。 テーブルを14テーブル含み、フィールド数が100ほどある選択クエリを作りました。 抽出条件などは設定していません。 このクエリで新しくデータを入力、レコードを追加し、上書き保存した後クエリを閉じます。 それからまた、そのクエリを開くとレコードが追加されていません。 テーブルにはその入力したデータは追加されています。 このクエリにもそのデータを追加表示させるためにはどうすればいいですか? 表示されない原因はなんなのかお教えお願いします。

  • アクセス作成について

     アクセスについて質問します。  フォームで入力する場合で、例えばテーブルのレコードを100までとし、101を超えた場合またレコード1にデータを入力することは可能でしょうか。 テーブル フィールド1 フィールド2  1       6  2       8   .      .   .      . 100       55 フィールド1は固定し、フィールド2にデータを入力していき101番目にデータを入力する時はまた1行目の6を上書きしてデータを更新していくようなことは可能でしょうか。(もちろんフィールド1、フィールド2を別テーブルとしクエリーを活用することでもok) アクセス初心者です。よろしくおねがいします。

  • フィールドの平均の求め方について

    Accessの初心者です。 現在、フィールド数250、レコード数1500の数字のみの データを持っていて、このデータをExcelで分析しています。 しかし、ファイルサイズ(4MB超)が大きくなりすぎて、動作が遅く、 しかもメモリ不足でよく強制終了するようになったので、 今後はAccessで分析したいと考えています。 そこで、お尋ねですが、 50個のフィールドの平均を求める簡単な方法が分かりません。 現在の私のやり方は、テーブル作成クエリを使って フィールド名:コード番号、名前、0001、0002、・・・・、0250 のデータがあれば、 =([0001]+[0002]+・・・・・+[0050])/50 =([0002]+[0003]+・・・・・+[0051])/50 =([0003]+[0004]+・・・・・+[0052])/50 このように膨大な式を手入力で入力しているので 手間と時間がかかりすぎて困っています。 どなたか、複数フィールドの平均の簡単な求め方を教えてください。

  • アクセスのクエリで

    あるテーブルはエクセルからインポートしていますが、全てのフィールドが空白というレコードが多数存在します。 これをクエリで(他に方法があればどの様な方法でもよいです)全てのフィールドが空白のレコードは表示しない様にする事はできますか? これを更新クエリにして、新しく全て空白のフィールドのレコードが無いテーブルを新たに作ろうと考えています。 教えて下さい。よろしくお願いします。

  • ACCESSのデータサイズがどんどん増えて困ってます。

    Microsoft Access97 を使っていますが。 イントラネット上のShareフォルダにmdbを置いて、共有モードで複数の人間で、情報を打ち込んでいるのですが、最初に置いた状態では、ファイルサイズは2MBくらいだったのですが、1日経って見てみると、7MBになっています。 テーブルのレコード数は、6フィールドほどのテーブルで100件ほどしか増加していないはずなのですが、どういう事でしょう? 何か、変更履歴のような物が何処かに出来て、ファイルサイズを食っているんでしょうか? メンテナンスを掛ければ改善したり、設定で改善したり出来ないでしょうか?? 詳しい方、ぜひお願い致します。

専門家に質問してみよう