- 締切済み
Access2007の速度向上について
はじめまして 横浜の技術者の卵です。 頼れる人がいないので投稿します。 申し訳ありませんが どなたか知っている方がいらっしゃれば 教えてください。 社内で使っているシステムの話なのですが ExcelのVBA、マクロを使用してAccessから データをひっぱり出すという作業をしています。 最近、Accessのレコード数が多いことが原因なのか データを引っ張り出すまでに時間がかかる為 どうにか直したいのです、良い方法はないでしょうか? 少し自分なりにも調べてみたのですが「チェー二ング」と 言う方法があるらしいのですが、Accessのチェー二ングに ついて分かりやすい説明のサイトはないでしょうか? 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- AKARI0418
- ベストアンサー率67% (112/166)
アクセス自体の高速化ではありませんが、 アクセスのファイルを定期的に最適化していますか? アクセスのファイルを最適化することで、パフォーマンスを取り戻すことができます。 参考にしてください。 http://www.accessclub.jp/samplefile/samplefile_74.htm
- nda23
- ベストアンサー率54% (777/1415)
速度を向上させる方法はいくつかあります。 (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)
質問するとき、 どういう仕組みでエクセルへデータを持ってきているのか、書かないで、質問になりますか。 インポート、エクスポート、MSクエリ(エクセル)、ADO(DAO)など SQLの利用がありやなしかなど。 ーー アクセルには、「ファイル 最適化」ということが在ります。 これのことなら、Googleででも、この語句で照会すれば山ほど記事が有る。(チューニングで照会より適切に出るだろう)