
はじめまして、宜しくお願いします。
現在Access2002でDBはSQLサーバーを使って、
下記のことを実行しようと思っております。
やりたいことは、タイトルにも書いたように、
処理中にメッセージを出したいのですが、思うようにできず行き詰っております。
やっていることは
処理開始というコマンドボタンを作成して、そのクリックイベントに
下記のようなソースを記述します。
Private Sub 処理開始_Click()
Dim i As Long
Dim X As Long
Me!処理中表示ラベル.Visible = True
SysCmd acSysCmdInitMeter, "只今、処理中です…", 100
For i = 0 To 1000000
X = X + 1
SysCmd acSysCmdUpdateMeter, i
Next i
SysCmd acSysCmdRemoveMeter
Me!処理中表示ラベル.Visible = False
MsgBox X
End Sub
処理が始まる前に
Me!処理中表示ラベル.Visible = True
でラベルを表示して、
Me!処理中表示ラベル.Visible = False
でラベルを非表示にしているのですが、処理中にラベルが表示されません。
仕方がないのでクリックイベント以外の先に行われるマウスダウンイベントに
Private Sub コマンド0_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me!ラベル1.Visible = True
End Sub
を書くと表示されるのですが
他の用途も考えて
やはりクリックイベントの中で行いたいと思っております。
基本的な部分で見落としているところがあるかもしれませんが
なにか気づかれた方はご教授ください。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
コードを実行している最中は、OSからの命令は実行待ちになります。
画面の再描画はOSからの要請による物なので、この様な場合には表示してくれません。
その場合には、
Me!処理中表示ラベル.Visible = True
の後に
DoEvents
命令を入れると、この場で画面が更新してくれますので、表示される様になると思います。
Access2002上でのプログラムですか?VB6出しかやったことないのですが、多分同じだと思います。
早速のレスありがとうございます。
Hawk-Wさんの言う通りやってみましたらできました!
コードの実行中はOSからの命令は実行待ちになるのですか。。
画面の再描画がOSからの要請によるものだと知りませんでした。
まだまだ、勉強不足です。
大変勉強になりました。
本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBA ステータスバー DoEvents 1 2023/03/30 12:22
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別フォームから戻ったときのイ...
-
「Cancel = True」とはどういう...
-
フォームの値を取得できません...
-
Perlで数値(小数点、負の数、...
-
excelのタスクバーアイコンが・...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
ウインドウを毎回同じ位置、大...
-
Excelでワードアートや図を常に...
-
エクセルでポップアップを出し...
-
スクリプトって、何ですか?ど...
-
エクセルVBAでフォームのListbo...
-
Javascript_submit()完了後に処...
-
Outlookでこのような表示がされ...
-
PDFを(htmlのように)無限に縦...
-
Visual Basicから Spreadのスク...
-
[Java] Edgeでのアドレスバー非...
-
VBの画面で、全ウィンドウを一...
-
サブウィンドウを常に最前面に...
-
アコーディオンで開かれたパネ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「Cancel = True」とはどういう...
-
別フォームから戻ったときのイ...
-
VB2005 DataGridView上でクリッ...
-
VB6.0のEnabledをfalseにしても...
-
C++での連続した左クリックの禁...
-
excelのタスクバーアイコンが・...
-
エクセル アプリケーションの...
-
【C#】ラベルのダブルクリック...
-
ASP DB検索結果の件数を事前表示
-
ヤフートップページの中心にあ...
-
別ページからのタブ切り替えの...
-
処理終了後のに砂時計が、クリ...
-
Perlで数値(小数点、負の数、...
-
VBAでIEの「Web ページからのメ...
-
Perlの多重起動を禁止したい
-
Perlでページ処理がどうしても...
-
MSFlexGrid
-
時間のかかる処理中にメッセー...
-
VC++2010 エディットボックスに...
-
C# マウスオーバーの記述方法
おすすめ情報