お世話になります。
VB 2008 EE を使っており、まだ素人レベルですが宜しくお願いいたします。
データリーダーでテーブルデータを取得して計算結果をデータアダプター経由で保存する処理をテスト中です。
ダミーデータを10000件程度作ってSQLで並び替えをしても数秒で完了するのですが、計算を入れたらとても時間がかかります。(30分程)
これもプログラム構造の問題なのかもしれませんが現在調査中です。
そこで、計算処理の進捗状況をリッチテキストに書き込もうと思っています。
例"現在***まで完了しています(改行)"といったかんじです。
(現状は「ProgressBar」を表示させています。)
純粋に読み込み処理の前にテキストボックスに文字を書き換えても変わってくれません。
計算が全て完了した後であれば書き換えがでします。
「完了しました」のような感じです。
Call(サブルーチン)で間接的にやらせてもだめでした。
テキスト書き換えが完了するまえにデータリーダーの接続が始まった為?
って感じがします。
NET情報でも色々調べたのですがわかりません。
説明が不鮮明で分かりにくいかもしれませんが、ご理解のほど宜しくお願いいたします。
No.2
- 回答日時:
#1さんがおっしゃるとおり、該当コントロール、若しくは該当画面をRefreshですね
EventProcedure実行中は画面の再描画は行われないのでデバッグ中にブレイク行でとまっている時は実行画面に切り替えても何も表示されないでしょう
それと同じで意識的に再描画を行ってやらないと出ません
該当コントロールだけを再描画すると他の画面に切り替えて表示を戻した時再描画したコントロールのみが再表示されるので画面にそのコントロールだけが出る形になるので、フォーム全体を再描画した方が良いでしょうね
#1の参考URLでDoEventsの注意書きがありますが
実際にどんな恩恵・弊害があるかなのですが
DoEventsを行うとOS側の制御が実行されますので
EventProcedureは実行されない事が実行出来てしまいます
例を挙げるとフォーム実行中にボタンを押して今回のような長い処理をしている間にも画面の入力等を行いたいとか別なボタン操作を行いたいなどが、ループ中にDoEventsを呼べば可能になります。
当然のことながら実行中のボタンも再度押せますので変数等が可笑しくなりこける場合もあります。
ご回答ありがとうございます。
まだ、勉強中の為、手探り状態です。
解決方法がわかっても、理由が理解できないと次につながらなく苦戦しております。
ご意見は非常に判りやすく参考になりました。
ありがとうございました。
No.1
- 回答日時:
よく質問に出る、こういう話?
http://blog.livedoor.jp/akf0/tag/DoEvents
#IDEが生成したコードよりも自分で書く事を好むhimajin100000
#宣言がいろいろ省略されちゃうからね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- PDF 2つのPDFを重ねる方法はありますか? 4 2023/01/30 14:04
- 英語 中3の英語についてです。 have been 〜ing (現在完了進行形)の使い道がよくわかりません 8 2022/06/08 18:02
- 英語 英語の相の種類 Wikipediaでは He began to talk.(起動相) He cont 1 2023/06/26 11:54
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Android(アンドロイド) Androidスマホのデータ移行が終わらない 1 2023/08/04 17:25
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
VB6のテキストボックスに入力していると、途中で急に文字が消えてしまうのは何故?
Visual Basic(VBA)
-
excel vba でユーザーフォーム入力ができない
Visual Basic(VBA)
-
-
4
配列を使わずに、変数名を動的にループで回したい
C言語・C++・C#
-
5
フォームの再読み込み
Visual Basic(VBA)
-
6
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
7
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
8
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
11
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
12
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
13
CloseとDisposeの違い
Visual Basic(VBA)
-
14
C#のループでtextboxに値を入れる方法
C言語・C++・C#
-
15
VB.netでメソッドからコントロールを取得
Visual Basic(VBA)
-
16
C#テキストボックスの文字を配列にいれてその後表示する
C言語・C++・C#
-
17
VBからプリンタに出力する時に印刷方向を縦から横に変更したいのですが・・・
Visual Basic(VBA)
-
18
Visual Basic.NETの、Form 間での引数の引渡し方法を教えてください。
Visual Basic(VBA)
-
19
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
20
System.IO.Directory.GetFilesの順番
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windowのちらつき防止
-
C++にて、塗りつぶされた円を描...
-
word
-
CS_HREDRAW|CS_VREDRAWについて
-
OneNote 2010 文字と描画がずれる
-
MFCのタイマーのつかい方を教え...
-
VB.netでのライン描画方法がわ...
-
Minecraft 統合版(PC)の描画距...
-
TextBoxに文字を書いても表示さ...
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルで作った新しいウイン...
-
フォームでPDFを表示させた...
-
Alt+P,Alt+NをPostmessageで送...
-
勝手にウィンドウが開いて止ま...
-
ゲームでは結局どっちが良いの?
-
VB6でシャットダウン、ログオフ...
-
「アイテムは収集されました」...
-
コンボボックス内の文字サイズ変更
-
エクセル VBA 「Sub Auto_Open(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MFCでOnPaintのタイミング
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
NVIDIAのシェーダーキャッシュ
-
TextBoxに文字を書いても表示さ...
-
UpdateData( FALSE); による文...
-
VB6,リストボックスの特定行の...
-
PCで「使用可能な場合はグラフ...
-
VC++プログラムをつかったBMP画...
-
VBAにGDI+を参照させる方法
-
FlexGridの一部のみ表示を更新...
-
pset関数について
-
エクセルでガンチャートを作成...
-
C言語(dxlib)のDrawboxについ...
-
Form1 Load で実行されない。
-
InvalidateRectの使い方について
-
MFCのタイマーのつかい方を教え...
-
CStaticコントロールの静的イメ...
-
Windowのちらつき防止
-
GDI+で高速な描画
おすすめ情報