
以前、Microsoft Answers で下記の質問をしていましたが、良い回答がなかなかつかないので、あらためてこちらで質問させていただきます。
http://answers.microsoft.com/ja-jp/office/forum/ …
最初の回答にあるSP1のアップデートが出るのを待っていました。
先日、SP1のアップデートが出たので、さっそくインストールしました。
しかし、ほとんど改善されず、せっかく購入したのに使えない状態です。
Microsoft に問い合わせても、「データ量が多すぎるのが原因、それ以上のことはわかりません」といった答えしか返ってきません。
困っています。どなたかぜひお助け願います。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
#1補足です。
http://code.google.com/p/cowares-excel-hello/sou …
ここの 1,353行目に、mdbファイルを開き、
CurrentDb 相当のものを取得する記述があります。
周辺を見れば Access Object との関連は理解できると
思います。
これは Excel VBA ですが、 VBScript でも同じです。
参照設定の代わりに CreateObject になるぐらいです。
これらのキーワードがわかれば、
検索すれば、もっと丁寧に説明したページも出てくると思います。
No.4
- 回答日時:
レジストリですが64bit上の32bitAPの場合
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug]
"JETSHOWPLAN"="ON"
の可能性があります。
この回答への補足
レジストリキーのWow6432がなく、Wow6432Nodeとなっているのですが、それでよろしいのでしょうか。
また、Engines以下にDebugがないのですが、どうすればよろしいのでしょう。
レジストリキーなどふだんさわることがないので、まったくわかりません。
No.3
- 回答日時:
500万件のうち何件ぐらい抽出しようとしているのでしょうか?
結構多いのが、大量のデータ抽出をインデックスを使ったランダムアクセスで行って、CPUは空いていてI/O WAITを起こしているパターンです。
レジストリをいじることになりますが、JETで実行されるSQLの実行計画をファイルに出力することが出来ます。
http://monado.dtiblog.com/blog-category-35.html
ace形式で取得できるかは確認していませんがMDB形式なら
windows7 access 2010 では
レジストリキー
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug]
"JETSHOWPLAN"="ON"
にセットすると\Users\ユーザ名\Documentsに「showplan.out」が出力されます。
これで実際にどんなアクセスをしているか確認してはどうでしょぅ。

No.2
- 回答日時:
テーブルの構造はどうなっているでしょう?
[テーブル名]tbl01
[ID] オートナンバー型 インデックス はい(重複なし)
[日付] 日付/時刻型 インデックス いいえ
[コード] 長整数型 インデックス いいえ
にて提示いただいた下記のコードを実行し500万行にてテストしました。
Sub CreateT()
Randomize
Dim db As Database, rs As Recordset, i As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("select * from tbl01")
For i = 1 To 5000000
rs.AddNew
rs("日付") = #1/1/2011# + Int(1000 * Rnd)
rs("コード") = Int((1000 * Rnd) + 1)
rs.Update
Next
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub
選択クエリ内に於いて下記の様なSQLを実行しました。
概ね5秒程度で結果が返ってきます。
"SELECT * FROM テーブル名 WHERE コード = " & コード & " ORDER BY 日付 DESC;"
しかし、[コード]フィールドのインデックスをはい(重複あり)になっていると
結果が返ってくるまで時間がかかり且つ安定しません。
私は、AC2000のJET内のことなので、ACEで64bitの場合は他の影響があるかもしれません。
この回答への補足
テーブルの構造ですが
テーブル名 DATATABL
フィールド
DATE 日付/時刻型 インデックス はい (重複あり)
CODE 数値型 整数型 インデックス はい (重複あり)
以下データ 数値型 テキスト型等 いずれもインデックスなしです
DATE とCODEがともに同じレコードはありません。
No.1
- 回答日時:
オフィス2010も64bit環境も持っていません。
そのため突っ込んだ手助けは出来ませんが、
リンク先を読み、まだ試すべきものがあると思い、
以下に挙げます。
1. VBScript と Excel VBA で試す。
VBScript で同種のコードを試すことにより、
オフィス2010に固有の現象かどうかを確認できます。
Excel VBA は、さらにそれが Access 2010 VBA のみの
現象かどうかを確認する目的です。
VBScript で問題が起きないなら、明確にオフィス2010 VBA の
障害でしょう。
2. 日本語のみのテーブルを作って試す。
これは、フィールド名やクエリ文に日本語があることが
影響しているかどうかの確認です。
日本語固有の問題は現地開発者が気づかないので、
無視されがちだからです。
これで明らかな違いが出れば、
Access 2010 VBA の日本語資源の扱いで起きた障害と断定できます。
3. OpenRecordset に書いたクエリを、Access 側に製作し、
そのクエリを開く。
これで違いが出るようなら、クエリのコンパイル回りで発生した
障害だと考えられます。
1,2,3 のいずれかで、「遅くならない」ものを見つけることができれば、
ハードウェアとは無関係な、 Microsoft 製品のみを原因とした障害です、
と報告できると思います。
この回答への補足
1.について
VBScript の使い方、及び Excel VBA で ACCESS のデータの呼び出し方がよくわかりません。
もう少しくわしくご説明いただけませんでしょうか。
無知で申し訳ありません。
2.について
リンクURLのSQL文は、わかりやすくするために一部日本語で書いていますが、実際はすべて英文字です。
コード・・・CODE、日付・・・DATEなど
3.について
リンクURLの中には書いていませんが、クエリーのデザインビューで作ったクエリーを実行しても、同じくらい時間がかかっています。
回答ありがとうございます。
VBScript の使い方及び Excel VBA で ACCESS のデータの呼び出し方がわかればためしてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 船舶・クルーズ Windows10のエクスプローラにて。 1 2022/10/10 20:11
- 工学 都市ガスの燃焼速度 3 2022/08/03 12:59
- 事件・事故 「ほぼ確実」なのでしょうか。 4 2023/08/28 22:22
- その他(ネットショッピング・通販・ECサイト) 骨伝導ヘッドセットで この二つは値段が違うだけでは同じですか? 1 2023/02/13 19:13
- タレント・お笑い芸人 相席スタート山添ってYouTube出てるらしいけど 3 2023/06/08 11:54
- 宇宙科学・天文学・天気 日本初の月着陸船の件 2 2022/12/01 17:45
- 政治 「このクソッタレが!」名古屋の高級焼肉店個室で“人糞”放置事件が発生 3 2022/05/30 18:30
- 政治 佐渡金山の推薦書不備に怒りの声……こういうのに、統一教会の意向を受けた売国議員が暗躍してませんか? 2 2022/07/31 19:18
- メディア・マスコミ 処理水放出「なぜ騒ぐの?」...福島の漁業関係者が意見発信……マスコミに反省はなさそうですね? 15 2023/08/24 16:00
- その他(パソコン・スマホ・電化製品) Google ドライブのようにXnBay ストレージ サーバのストレージスペースをコンピュータのエク 2 2023/04/28 19:09
このQ&Aを見た人はこんなQ&Aも見ています
-
Access クエリ実行が急に非常に遅くなりました。
Access(アクセス)
-
accessの処理が遅い
その他(データベース)
-
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
-
4
ACCESSでクエリを作成したら「式が複雑すぎます。」の表記が…
その他(データベース)
-
5
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
6
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
7
[Access] パススルークエリーで実行すると遅い
Access(アクセス)
-
8
IIF関数の使い方
Visual Basic(VBA)
-
9
「#エラー」の回避
Access(アクセス)
-
10
LEFT JOIN あいまいな外部結合
その他(データベース)
-
11
accessテーブル作成クエリを実行したときにオートNo(のような)振る方法
その他(データベース)
-
12
アクセスのクエリでコンパイルエラーが出ます。
Access(アクセス)
-
13
ACCESS フォームをそのまま印刷について
その他(データベース)
-
14
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
15
access テキストボックスの値取得
Access(アクセス)
-
16
データベースの最適化をマクロでしたい
その他(データベース)
-
17
ACCESS2003のグループ化のエラーについて
その他(データベース)
-
18
Accessのフィールド結合について
Access(アクセス)
-
19
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
20
帳票フォームのなかにリストを表示させたい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
access・カウント結果がゼロで...
-
access2002 追加クエリ?マク...
-
「データベースまたはオブジェ...
-
ACCESS クエリで、グループ化...
-
ACCESSでクエリを作成したら「...
-
AccessのクエリをSqlサーバーの...
-
access:連続データ入力
-
追加先の発見方法(SQL以外)
-
アクセスでフォームが更新でき...
-
長いSQL文を見やすくするツ...
-
Access処理を自動化するには?
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
Accessのクエリで、Left関数を...
-
accessで、「集計のオプション...
-
ACCESSのフォームからデータの...
-
Accessのフォーム上にレコード...
-
Accessの構造について
-
Access2000でのCSV出力(エクス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
「データベースまたはオブジェ...
-
ACCESSでクエリを作成したら「...
-
ACCESS クエリで、グループ化...
-
access・カウント結果がゼロで...
-
追加先の発見方法(SQL以外)
-
ACCESSにてフィールド間の最小...
-
ACCESS のクエリー実行に異常に...
-
ACCESS クエリー 抽出条件が...
-
クエリで「データ型が一致しま...
-
ユニオンクエリについて
-
SqlServer2012 ビューとクエリ
-
Access あるクエリを利用して...
-
アクセスでフォームが更新でき...
-
AccessでのDISTINCTROW 、DISTI...
-
accessで選択クエリで得た全レ...
-
SQLで優先順位が高いレコードを...
-
access:連続データ入力
-
AccessのクエリをSqlサーバーの...
-
選択クエリで偶数月しか表示し...
おすすめ情報