• ベストアンサー

Timer

VB6.0で開発しています。 SQL問合せ中や、SHELLでDOSプロンプト実行中、 ファイルの圧縮中など、 処理時間が掛かるものにプログレスバーを表示しています。 Timerで時間毎に動いていればいいって感じなのですが、 SQL問合せ中など、動いてくれません。 画面をリフレッシュしても、DoEventsを入れてもダメです。 何か方法ありますか?

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

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.1

流れ的には、 非同期接続 SQL問い合わせ Do Until SQL問い合わせ完了 = True プログレスバーを表示 Loop SQL問い合わせ完了を表示 こんな感じじゃないですかね。 他も考え方は同じかと。 作りによってはDo~Loopで回すのではなく、フラグを立てておいて別の処理ができるようにするとかあると思います。

wan-chan
質問者

お礼

ありがとうございます。 非同期接続について調べてみます。 DOSプロンプトをSHELLでキックしているのは非同期ですから、 なんとかなりそうですね。 今は、APIのWaitで待っています。 そこをLOOPにしてプログレスバーを表示できるか やってみます。 ありがとうございました。

wan-chan
質問者

補足

補足します。 ADOで非同期接続をしました。 そしたら、うまくいきまいた!! ありがとうございました。 ただ、別の問題が出たので、 再度、別で質問します。