VB5でORACLE8のデータを読みMS-ACCESSに出力するプログラムを使用
しています。何十万件ものデータを扱う為に処理時間に30分~1時
間程掛かるのですが、その処理中にMS-WORD,EXCELを使用したくて、
エクスプローラからファイルをダブルクリックしても、砂時計のまま
MS-WORD,EXCELが反応せず、VBの抽出処理が終ると同時にMS-WORD,EXC
ELも起動します。この現象はWINDOWS95で発生しWINDOWS98ではこの現
象が出ません。
毎日数回行う処理なので待ち時間が馬鹿にならず困っております。
どなたかこういった経験をお持ちで無いでしょうか?
ちなみに待っている間はスクリーンセーバも動かずこちらも抽出終了
と同時に起動します。
以上、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
おそらく件数分まわるループなどがあるのでは?
VB製のEXEが処理を独占していると思うので
DoEvents
をループ内に入れて、制御をOSに渡してみてはどうでしょう。
>30分~1時間
これよりも処理がかかるようになりますが、プログラムとOSの処理を並走させるのであれば、しかたのないこと・・・
はずしていたら、すいません。
有り難うございます。
そうですね、多少時間が掛かっても処理を並送させる事を
優先したいので試してみます。
現在 “制御をOSに渡した後”の状態について調査している最中です。
No.4
- 回答日時:
大変ですね。
。。ちなみに私はORACLE8のデータを読みMS-Excel2000に出力するプログラムを作りました。処理件数は確か万単位だったかな。
ORACLE8を使用されているということですが、PL/SQLは使えますか?もし使えるのであれば、PL/SQLでいったんCSVテキストに出力して、MSACCESSにインポートする処理ができると思います。(やったことはないですが)
あとは、参考までに私が作ったときはCSVにいったん出力後、CSVからEXCELに表示させました。VB6で開発したので配列間の代入を1行でできましたが、VB5でもできるのかどうかはわかりません。
もし、できたら教えてくださいね!!
代入はVB5でも1行で出来かもしれませんね。
引数の数が多いのでPLで使えるかどうか分かりませんが、今度チャレンジしたいと思います
御丁寧にありがとうございました。
No.3
- 回答日時:
VB6でWindowsNTWorkstation4.0で同じような処理を
作ったことがあります。
そのときは、5分から10分くらいその状態でした。
DoEventsを使っても回避し切れなくてとても困った
記憶があります。
そのときは結局「処理実行中はMSのソフトを起動しない」
という運用ルールで回避しました。
ちなみに、処理件数はどのくらいですか?
待ち時間から推測して相当ありそうな感じがしましたが。。。あとは、配列を使っているのであれば配列データの処理の仕方や、オブジェクトの参照方法で処理時間が
短縮できる場合があります。
今の時点ではこれくらいしか言えないですね。。。
お役に立てなかったらごめんなさいね。
この回答への補足
すみませんお礼の内容を間違えてしまいました。
事例があった事を知れただけでも大きな収穫です。
DoEventsでもダメな場合もあるのですか(>_<)
自分は現在試している最中なのですが、
それだとやはり困りますね…
件数は5~7万件、多いときは10万件位処理します。
オブジェクトの参照方法で処理時間を短縮する事
も試してみたいと思います。
ありがとうございました。
有り難うございます。
そうですね、多少時間が掛かっても処理を並送させる事を
優先したいので試してみます。
現在 “制御をOSに渡した後”の状態について調査している最中です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
- その他(Microsoft Office) PCを買い換えました。 今使っているノートパソコンが10年以上使っており新しく買い換えました。Win 5 2023/03/26 00:18
- Excel(エクセル) Excelのウィンドウが少し小さく、ズレて立ち上がります 1 2022/06/27 16:25
- Windows 7 Media Playerが開かない。ファイルアイコンを右クリックしても「プロパティ」が表示されない。 2 2023/02/05 14:45
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- その他(Microsoft Office) Windows Update 後、Office2019(Word、Excelなど)が消えた 4 2023/01/14 10:28
- 仕事術・業務効率化 やはり先輩の言う事は絶対従わないといけないんでしょうか? 仕事で書類出しをしているのですが、自分が分 5 2023/08/03 23:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
もしかして
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
Do~Loopした回数をカウントしたい
-
switch の範囲指定
-
VBAでセルに値が入力されるまで...
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
リョウ・・・量?料?
-
Loadイベント中にほかのイベン...
-
findは動くがfindnextがマクロ...
-
自分の不注意で仕事で乗り合い...
-
VBの質問#if 0 then ってどう...
-
EXCEL VBA マクロ 実行する度に...
-
[ホルマール」って何ですか
-
VBA SaveChanges 上書きされない
-
vba 空のデータをSplitする時の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
Do~Loopした回数をカウントしたい
-
VB.NET Excelを読み込んでDataT...
-
月度は何て読みますか?
-
findは動くがfindnextがマクロ...
-
リョウ・・・量?料?
-
iD
-
VBA SaveChanges 上書きされない
-
Select Case文でこのようなこと...
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
おすすめ情報