VB6.0 SQL SERVER WinXPです。
UPDATEの処理の時に進行状況を表示したいのですが
うまく動かずバーが真っ白のままです。
教えてください。
lCount = pbAdo.RsRecordCount(rc)
With pvBase
If rc.EOF = False Then
picBar.Width = 0
labCount.Caption = ""
labCount.Visible = True
End If
If rc.RecordCount Then rc.MoveFirst
Do While Not rc.EOF
sSQL = " UPDATE m_zaiko SET "
sSQL = sSQL & " 実在庫数=" & .CvtSQL(dblZaikoSuu, CVT_DBL)
sSQL = sSQL & " WHERE "
sSQL = sSQL & " 品番=" & .CvtSQL(strHinban, CVT_STR)
sSQL, lRet, adExecuteNoRecords + adCmdText
picBar.Width = (picProgress.Width / lCount) * i
labCount.Caption = CStr(i) & "/" & CStr(lCount)
rc.MoveNext
i = i + 1
DoEvents
Loop
Set rc = Nothing
End With
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
保存失敗はSQL文に問題があるのではないでしょうか。
まず下記のようにしてプログレスバーの部分のみ
テストしてはどうでしょう。
---
lngRC = rc.RecordCount
For i = 1 To lngRC
picBar.Width = (picProgress.Width / lCount) * i
labCount.Caption = CStr(i) & "/" & CStr(lCount)
DoEvents
Next
No.3
- 回答日時:
プログラムをよく確認していませんでした。
DoEvents
ちゃんとLoopの前に入っていましたね。
プログレスバーはCommon Controlsを使用せず
picのWidthで経過を表示しようとしていると
考えてよろしいでしょうか。
picBar.Width = (picProgress.Width / lCount) * i
picProgressのWidthはpicBarのWidthの最大値に
なっていますか?
No.2
- 回答日時:
スーツのデザイナーでプログラマではありません。
よって、チクーッと書き換えて検討してみました。
・DoEvent は、一応、存在するので picBar.Width の値設定が臭いと思います。
・picBar.Refresh は、必要ないと思いますが。(試していないので確信はありません!)
・ループの回数が決まっているので For-Next 文が確実かと!
・エラートラップが無さそうなのが気になります。
lCount = pbAdo.RsRecordCount(rc)
bWidth = picProgress.Width / lCount
' *************************************
Debug.print bWidth ’ bWidthの確認
' *************************************
picBar.Width = 0
labCount.Caption = ""
labCount.Visible = True
If lCount > 0 Then
' ==========
’ Brgin With
' ----------
With pvBase
rc.MoveFirst
For I = 1 To lCount
sSQL = " UPDATE m_zaiko SET " & _
" 実在庫数=" & .CvtSQL(dblZaikoSuu, CVT_DBL) & _
" WHERE "
" 品番=" & .CvtSQL(strHinban, CVT_STR)
????? sSQL, lRet, adExecuteNoRecords + adCmdText
'
' picBar 更新
'
picBar.Width = bWidth * I
labCount.Caption = CStr(I) & "/" & CStr(lCount)
DoEvents
rc.MoveNext
Next I
' ---------
’ End With
' =========
End If
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- その他(データベース) 「1004:アプリケーション定義またはオブジェクト定義のエラー」への解消方法に関して 1 2023/07/09 11:47
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループを途中で抜けたいのですが。
-
break文でループを一気に抜ける...
-
do-while文が禁止される理由
-
if文の中にfor文なのか、for文...
-
if文を使わずに奇数・偶数を判断
-
他言語で言うcontinue文
-
エクセルVBAで Do While (1)って?
-
無限ループ対策
-
Excel VBAで年度をまたぐ期間の...
-
for文while文の無限ループの違...
-
プログラムの解説をお願いします。
-
C言語forループが完結した場合...
-
For文の終了値を関数にしても問...
-
C言語、whileループを抜け出す...
-
UWSCにてある一定の動作を無限...
-
入力した文字列から母音だけを...
-
C# 演算 Help me!
-
ファイルから読み取った「行の...
-
新たな疑問 for( ; ; ){
-
エクセルでC言語のfor文と同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
do-while文が禁止される理由
-
break文でループを一気に抜ける...
-
エクセルでC言語のfor文と同じ...
-
ループを途中で抜けたいのですが。
-
エクセルVBAで Do While (1)って?
-
C言語forループが完結した場合...
-
For文の終了値を関数にしても問...
-
excel VBA if文について
-
入力した数値を倍々するプログラム
-
入力した文字列から母音だけを...
-
Excel VBAで年度をまたぐ期間の...
-
if文の中にfor文なのか、for文...
-
C言語、whileループを抜け出す...
-
for文while文の無限ループの違...
-
UWSCにてある一定の動作を無限...
-
__asm int 3でのブレイクポイン...
-
PIC のプログラムについて ど...
-
他言語で言うcontinue文
-
Cプログラムが終了しない
-
プログラムで関数は使わない方...
おすすめ情報