• 締切済み

Access2007の速度向上について

はじめまして 横浜の技術者の卵です。 頼れる人がいないので投稿します。 申し訳ありませんが どなたか知っている方がいらっしゃれば 教えてください。 社内で使っているシステムの話なのですが ExcelのVBA、マクロを使用してAccessから データをひっぱり出すという作業をしています。 最近、Accessのレコード数が多いことが原因なのか データを引っ張り出すまでに時間がかかる為 どうにか直したいのです、良い方法はないでしょうか? 少し自分なりにも調べてみたのですが「チェー二ング」と 言う方法があるらしいのですが、Accessのチェー二ングに ついて分かりやすい説明のサイトはないでしょうか? 宜しくお願い致します。

みんなの回答

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

アクセス自体の高速化ではありませんが、 アクセスのファイルを定期的に最適化していますか? アクセスのファイルを最適化することで、パフォーマンスを取り戻すことができます。 参考にしてください。 http://www.accessclub.jp/samplefile/samplefile_74.htm

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

速度を向上させる方法はいくつかあります。 (1)検索条件に指定する確率の高いフィールドにインデックスを設ける。 (2)Access側でExportしてから処理する。 レコード数が多い場合は(2)の方法がオススメです。 (1)の方法はチューニングに属する修正方法ですが、処理速度の大部分は マクロでレコードを操作することによるものです。これを内部処理に 代えることで高速化を狙うのが(2)の方法です。 抽出条件などが可変の場合はAccess側にクエリを作成しておき、動的に 変更します。 Dim A 'Accessを起動 Set A = CreateObject("Access.Application") 'ターゲットのMDBファイルを開く A.OpenCurrentDatabase "C:\abs\kai.mdb" '予め用意してあるクエリ(QQ)のSQLを書き換える A.CurrentDb.QueryDefs("QQ").SQL = "SELECT * FROM T2" 'Excel形式でExportする A.DoCmd.TransferSpreadsheet 1, 8, "QQ", "C:\OK\exp.xls" 'Accessを終了させる A.Quit Set A = Nothing 'エクスポートしたExcelを開く Dim B As Workbook Set B = Workbooks.Open("C:\OK\exp.xls")

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問するとき、 どういう仕組みでエクセルへデータを持ってきているのか、書かないで、質問になりますか。 インポート、エクスポート、MSクエリ(エクセル)、ADO(DAO)など SQLの利用がありやなしかなど。 ーー アクセルには、「ファイル 最適化」ということが在ります。 これのことなら、Googleででも、この語句で照会すれば山ほど記事が有る。(チューニングで照会より適切に出るだろう)

関連するQ&A

専門家に質問してみよう