• ベストアンサー

フィルタに時間がかかる

アクセスのレコードが70000近くあるのですが ローカルで使っているのに、 このレコードにvbaでフィルタをかけると5秒くらいかかります。 win7&アクセス2010、メモリ2Gです。 レコード数がこのくらいなら、フィルタににこのくらいの時間がかかるのは普通の事ですか?

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

  • ベストアンサー
  • sata-nn
  • ベストアンサー率59% (920/1545)
回答No.1

>>win7&アクセス2010、メモリ2Gです。 ・メモリーが2GBはEXCELのVBAを動作するにはきついと思います。 ・WIN7、WIN8、VISTAを快適動作するには標準で4GBになります。 ※マクロの処理は意外とメモリーを消費します。 ・増設をお勧めします http://www.elecom.co.jp/pickup/guide/memory/index.html >>アクセスのレコードが70000近くあるのですが ローカルで使っているのに、 このレコードにvbaでフィルタをかけると5秒くらいかかります。 ・それだけのレコード数なら、多少時間かかるのは仕方がないことだと思います。 ・メモリー増設後、下記にて、データ等の整理をすれば体感的に処理が速くなると思います。 http://jp.iobit.com(無料版) ・起動→右上(×印)付近にある「詳細設定」を選択→設定のケア欄にあるレジストリ修復、プライバシースイープ、ジャンクファイルクリーン(ゴミ箱以外)の項目に全てチェックを入れる。ディスクデフラグの「断片化が下記の%以上で実行」の所に常時デフラグを選択します。 ・終わりましたら、適用→OKを選択します。これにより設定は完了です。 ・再度起動→ケア→すべてチェックを入れる ・ケア→ケア欄にあるスキャンを選択→少し時間がかかります。→修復を選択します。→自動的に修復されます。全体が修復されるので、終わるまで待ちます。 ・終わりましたら、先ほどインストールしたソフトをアンインストール

JAWFYJMKNPO
質問者

お礼

回答頂きありがとうございました。

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

インデックスは定義してあるのですか?

JAWFYJMKNPO
質問者

お礼

回答頂きありがとうございました。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

日本郵便に郵便番号のCSVファイルが有ります。 http://www.post.japanpost.jp/zipcode/dl/kogaki.html 123,570件のレコードですが、これを使って地番にあたるフィールドで 「銀座」だけをFilterした場合、20レコードが返ってきます。 これを一昨年の最新鋭?PCや十ウン年前のWinXPで行った場合 両者とも1秒もかかりません。 メモリが寂しいのには同意いたしますが、(4GBは欲しい) 遅いのはそのせいでは無いと思います。 あなたの「このレコードにvbaでフィルタをかける」 内容が不明なので、これ以上は分からんですね。 取りあえず、「最適化」でも行ってみたら?

JAWFYJMKNPO
質問者

お礼

回答頂きありがとうございました。

関連するQ&A

  • 同じテーブルなのにフィルタの条件によって時間が全然

    アクセス2010で、テーブルのデータが210000件あるのですが 同じテーブルなのにフィルタの条件によって時間が全然違います。 Aフィールドにフィルタをかける時は2秒ぐらいで結果が表示されるのに Bフィールドだと6秒くらいかかります。 フィルタはVBAでFilterOn = Trueを使っています。 なぜでしょうか?

  • フィルタ後のテーブルのレコード数を取得したい

    アクセスvbaです。 フィルタ後のテーブルのレコード数を取得したいのですが Debug.Print DCount("[フィールド1]", "テーブル1") だと、フィルタ前の数が取得されてしまいます。 フォーム1にテーブル1を紐付けて、 更にフィルタをしているのですが、 元のテーブル1のレコード数が10として、 フィルタ後が3なら、3を取得するVBAコードを教えてください。

  • 「実行時エラー 3035メモリ不足です」

    アクセスのテーブルを開いてレコードを並び替えようとすると 「メモリ不足です」と表示されます。 VBAで、 DoCmd.RunSQL SQL のコードでも同じように 「実行時エラー 3035メモリ不足です」と言うエラーが発生します。 VBAでエラーになった場合は、 一度エラーでとまりますが、そのままF5を押すと問題なく実行できます。 メモリは4G積んでいます。win7です。 そんなにメモリが低いでしょうか? アクセスのレコード数は40000くらいです。

  • フィルタ後のフォームの件数の取得の仕方

    あくせすです。 テーブルを元にフォームにデータを表示させているのですが 元データのテーブルのレコード数が100件だとして 今フォーム上で手作業でフィルタをかけて表示しているレコード数が20件だとしたら、 この20件と言う数をVBAで取得する方法を教えてください。 DCountだと、元テーブルの全てのレコード数(フィルタ前)が取得されてしまいます。

  • 起動時間がかかる

    QOSMIOのノートパソコンを使っているのですが 起動時間が一分20秒ぐらいかかるのです ローカルディスクはCしかなくて Cの容量も68G使えるうちの15Gしか残っていません メモリの増設とかはしたくないんです。 どうすれば起動時間が早くなりますか?

  • フィルタをかける際に再計算されずにかける方法はあり

    関数がたくさん入ってるシートにvbaでフィルタをかけると、 再計算されるせいかものすごく時間がかかります。 フィルタをかけるvbaコードは With Range("a1").CurrentRegion .AutoFilter Field:=COL, Criteria1:="=" End With こんな感じです。 この時、10秒くらいかかります。 多分シートにたくさん関数が入ってるからだと思います。 フィルタをかける際に再計算されずにかける方法はありますか?

  • VBAで3秒だけ時間を止めたい

    アクセス2007です。 VBAで3秒だけ時間を止めたいのですが 過去ログを検索してもよくわかりませんでした。 http://okwave.jp/qa/q4984098.html こちらを見るとAPIとの事ですが VBAだけで出来るコードをご教示いただけないでしょうか?アドバイスよろしくお願いします。

  • adoのWHERE句 クエリだとフィルタされない

    エクセルvbaなのですが、 adoのWHERE句は、テーブルじゃないとダメなのでしょうか? と言うのも、 rs.Open "Q_カテゴリ WHERE 分類 like '%A%'" だと、エラーにならないのですが、抽出もされずに全レコードが対象になってしまいます。 しかし、 rs.Open "T_カテゴリ WHERE 分類 like '%A%'" にすれば、抽出された後のレコード数が取得されます。 エラーにならない事から、オブジェクトは存在してる事は確かなはずですが なぜかフィルタできません。 なぜでしょうか?

  • キャッシュメモリのアクセス時間・・・

    コンピューターシステムの問題について教えてください。アクセス時間の求め方については理解しているつもりなのですが、教えてください。 1 容量512Mバイト、アクセス時間50ナノ秒の主記憶装置に容量64Kバイトのキャッシュメモリを付加したところ、アクセス時間が9.5ナノ秒となった。キャッシュメモリのフット率は0.9とするときのキャッシュメモリのアクセス時間はどのようになるのでしょうか? 2 磁気ディスク装置のサーチ時間は5ミリ秒。この装置の回転速度(1分間あたりの回転数)はどのように計算すればいいですか?   3 7ビットの文字コードの最上位にバリティビットを付加し、偶数のバリティで誤りの検出を行う時、16進数で6Bと表される文字コードにバリティビットを付加した数値を16進数で表すにはどう考えればいいですか? 以上の問題に躓いてます…よろしくお願いします。 

  • 立ち上がりが遅い気がする

    コアi7のメモリ8Gのwin7ですが Microsoft Visual Basic 2010 Express を立ち上げるまでに10秒近くかかりますが、普通でしょうか? こんだけスペックが良ければ、もっとさっくり立ち上がってもいい気がするのですが・・・。

専門家に質問してみよう