vbプログラムでの長時間バッチ処理の途中経過件数表示方法

このQ&Aのポイント
  • vbで多量の件数を処理するバッチプログラムがあります。現在何件処理済みかを、1000件単位でtext項目へ表示させたいと思っています。
  • ProgressBarとか考えましたが、表示内容が今ひとつでした。トータル件数と現在実行済み件数だけの表示でよいのですが、上手くいきません。
  • 仕方がなく表示用にプログラムをもう一つ作りまして、件数情報をそのプログラムに渡して表示させています。この仕組みが割と複雑で、もっと簡単にvb機能だけでできるのではないかと思っています。
回答を見る
  • ベストアンサー

vbプログラムでの長時間バッチ処理の途中経過件数を表示したい。

vbで多量の件数を処理するバッチプログラムがあります。 現在何件処理済みかを、1000件単位でtext項目へ表示させたいと思っています。 ProgressBarとか考えましたが、表示内容が今ひとつでした。 トータル件数と現在実行済み件数だけの表示でよいのですが、上手くいきません。 仕方がなく表示用にプログラムをもう一つ作りまして、件数情報をそのプログラムに渡して表示させています。 この仕組みが割と複雑で、もっと簡単にvb機能だけで出来るのではないかと思っています。 よい方法をご存知の方、ご教授を頂きたく宜しくお願い致します。 os:windows2000pro vb:vb6 です。

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

  • ベストアンサー
回答No.3

Do While ...   ...   DoEvents Loop のようにループの中に DoEvents を入れてみてはどうでしょうか。

tosi0000
質問者

お礼

有り難う御座います。 テストしました。 GOODでした!

その他の回答 (2)

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

自信ないですが、バッチ時代を振り返り ・総レコード数が最初に判れば、レコードを読む都度カウントを+1し、区切りの良い1000レコードとか読んだ時にX千/全体数で%(処理済み割合)を出せます。 ・固定長なら、ファイルレングスが取れないか考える。 全体長/レコード長でレコード数が出ます。 ・それらができなければ、ファイルを書き終わったとき、レコード数を、別ファイルに書き出す(当然短いファイルです。)処理の始めにそのファイルをよみ全体レコード数を知る。

tosi0000
質問者

お礼

早速のご回答ありがとうございます。 いつもご回答頂きまして感謝しています。 今回は全体の件数と表示したい数値はわかっているのですが、プログラムの処理中にその値を画面に出す部分を知りたいと思っています。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>トータル件数と現在実行済み件数だけの表示で >よいのですが、上手くいきません。 どこがどのように上手くいかないんですか?

tosi0000
質問者

補足

数値をテキストへ出力して、表示(show)しても表示されません。 バッチ処理が完了して画面へ制御が戻った時点で表示されます。 ちなみにリストボックスに変えて表示をしていくと垂直バーが上がって行きますので、表示自体はされていると思いますが、肉眼で見ることは出来ません。

関連するQ&A

  • 処理件数を非表示にしたい

    ManagementStudioでストアドプロシージャの開発をしています 開発中、デバッグのためにプロシージャをコールすると、SQLの発行の度に 「何件処理されました。」 「何件処理されました。」 「何件処理されました。」 「何件処理されました。」 「何件処理されました。」 ・・・ と処理件数が表示され、確認の際に邪魔で困っています。 処理件数を非表示にするにはどうすれば良いでしょうか? また同様に、SELECT文の発行ごとにSELECT結果がグリッドに表示されるのを非表示にできないでしょうか?

  • バッチ処理について

    はじめまして! 現在VB5.0で下記のようなプログラムを作っています。 TextBoxにフォルダ名を指定→Commandボタンを押下→Excel出力 このフォルダにはいくつかのテキストファイルがあり それを読込んで、必要な情報だけをグラフ化してEXCELに 表示しています。 実はこのプログラムをバッチで処理する必要にせまられ たのですが、できるのかどうかもわかりません。 もし、処理できるならどのようにしたらいいのでしょうか? プログラム初心者なもので質問の仕方が悪いかもしれませんが、よろしくお願いします。

  • バッチの処理状況表示について

    こんにちわ。 毎朝バッチを使用してPCのエラーログデータの取得及びサービスの起動有無の確認をテキストに書き出ししている処理をしているのですが、そのバッチ処理が後どのくらいで終わるのか?または現在何パーセントぐらい処理が完了しているのかを表示させたいと思っているのですが、表示のさせ方やどのコマンドを使用すればよいかがわかりません。 ご存知の方がいらっしゃいましたら、教えて下さい。 環境はWindowsXPです。 希望としては極力、VBとかは使用せずにバッチファイル内で簡潔したいと思っています。 よろしくお願いします。

  • C#で書かれたプログラムをバッチ処理

    C#で書かれたプログラムをバッチ処理を行いたいのですが,方法があまり良く分かりません. まずC#で書かれたプログラムを起動すると, 処理したいファイル名を入力するテキストボックススと, パラメータを入力するテキストボックスが表示されて, ボタンを押すと処理が始まります. 処理したいファイルが数百あるので,バッチ処理でできないものかと考えているのですが, どのようにC#のプログラムに引数を渡して処理させればいいのか分かりません. 理想としては,コマンドプロンプトから,各種値が入ったテキストファイルなんかを読み込ませて処理できればよいのですが... 十分伝えきれているのか不安ですが,宜しくお願い致します.

  • データ処理実行中に処理件数を表示させたい

    こんばんは、ACCESS初心者です。 ACCESSのVBAで、あるデータ処理を行うプログラムを作成しました。 処理件数が多いため、現在処理中の件数をフォーム上に表示させてあげようと、 テキストボックスを配置し、そこへカウンタの値をセットしようと思います。 (カウントアップしているサマをユーザーに見せたい) しかし、ただセットするだけではダメのようで、 再表示的なこと?をしてあげないと表示されない感じなのですが、 処理中にテキストボックスの最新の値を常に表示させるには 何か方法があるのでしょうか? よろしくお願いします。

  • プログラムの処理時間を表示する

    Windowsのコマンドプロンプトで,プログラムの処理時間を表示する事ってできますか? ---------- a.exe ampl cooksched.run b.exe ---------- というバッチファイルを実行しているのですが,この一連の処理をする時間を表示させたいです. ちなみにa.exeとb.exeはC言語で書いたものをcygwinでコンパイルしたものです. 2行目の[ampl cooksched.run]というのは,AMPLという言語のバッチファイルみたいなものです. 説明が下手ですみませんが,何か分からない事がありましたら補足いたしますのでよろしくお願いいたします.

  • 該当件数を表示させたい。

    VB6でプログラムを作っています。コンボボックスで内容を選んでコマンドボタンを押すと、データベース(Access2002)にある同じ内容のものの件数が表示されるには、どのようなソースを書けばいいですか?

  • プログレスバーでの経過状況表示

    vb.netでのtimerのようなものをやりたくてvbaでプログレスバーを使用して経過状況を表示するプログラムを作りました。プログレスバー自体での視覚的な経過状況表示はできたのですが、現在のパーセンテージをlabelに表示することができません。 Private Sub CommandButton4_Click() Dim i As Long Application.Visible = False i = 1 For i = i To 1000000 UserForm1.ProgressBar1.Value = i / 1000000*100 UserForm1.Label1.Caption =UserForm1.ProgressBar1.Value i = i + 1E-44 Next Application.Visible = True End Sub 上記のようにするとプログラム終了時にlabel1に現在のプログレスバーの値が表示されますが、進行中には表示されないのです。これを進行中も表示させるにはどうしたら良いのでしょうか?

  • バッチシステムの処理時間

    ある人から下記の問題を質問されましたが、私にもよく分かりませんので、有識者の皆さん是非とも教えてください! ---問題--- 問:次のバッチシステムの処理時間を計算しなさい。デ-タ件数10万件 1.1件のデ-タ処理におけるハ-ドディスク上のファイルへのアクセス回数は 5回である。それぞれのファイルはランダムにアクセスするものとする。 2.CPUの総処理ステップは5000ステップである。、計算には、次の数値を使え。 ?平均COBOL1への命令は10msec、 ?ハ-ドディスクのシ-ク時間は24msec、 ?回転時間は6msecである。 ?ただし、ハ-ドディスクのデ-タ転送時間は考慮しなくて良いものとする。 問題 (1)デ-タ1件のCPU処理時間を計算せよ。 (2)ファイル一回のシ-ク時間を計算せよ。 (3)ファイル一回のアクセス時間は何msecになるか。 (4)ファイル一回のファイル一回の回転待ち時間を求めよ。 (5)デ-タ1件の全処理時間は何msecになるか。 (6)全デ-タ10万件のこのシステムの処理時間は何時間何分何秒か。 ---ここまで--- では、宜しくお願いいたします。

  • VBで内部処理のみ行って終了するプログラムを作るには?

    VB6.0でコマンドラインからの引数をテキストファイルに出力して終了させるプログラムを作りたいのですが、フォームなど特に画面に表示することなく内部で処理をしたら勝手に終了させるにはどうしたらよいのでしょうか? 初心者の間の抜けた質問で申し訳ありませんが、どなたかアドバイスをお願いします。

専門家に質問してみよう