• ベストアンサー

Accessフォームに進行状況ダイアログを表示したい

Access2000を使用しています。 DAOでデータ引き当て処理を行なっている最中、進行状況ダイアログ を表示すれば時間の目安が付きやすいと思うのですが、やり方が分か りません。Accessでフォームに表示するのは難しいのでしょうか? ご存知の方、方法もふくめて宜しくお願いいたします。

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

  • ベストアンサー
  • yuji0401
  • ベストアンサー率9% (28/284)
回答No.4

#3です。 Call InitProgressとCall UpdateProgress(処理数/合計数)の後に、DoEventsを入れてもダメ?

Toshikazu2468
質問者

お礼

できた!ありがとうございました!あなたはスゴイ!

その他の回答 (3)

  • yuji0401
  • ベストアンサー率9% (28/284)
回答No.3

ラベルを使います。 例えば、 lblBackとlblFrontの2つのラベルがあります。 lblBackの幅を1000(width)、Colorは白に設定。 lblFrontの幅も最初はlblBackと同じにします。Colorは青。 Private Sub InitProgress lblFront.Width = 0 lblFront.Visible = True lblBack.Visible = True End Sub Private Sub UpdateProgress(Status as Double) lblFront.Width = lblBack.Width * Status DoEvents End Sub Private Sub EndProgress lblFront.Visible = False lblBack.Visible = False End Sub Private Sub Button1_Click() Call InitProgress Do '処理 Call UpdateProgress(処理数/合計数) Loop Call EndProgress End Sub 手抜きですがこんな感じですかね。 後はご自分で工夫してください。

Toshikazu2468
質問者

お礼

ありがとうございました。実行してみましたが、やり方が悪いのかDAO処理の為なのか、処理が終わってから満タンに表示されてしまいます。

noname#140971
noname#140971
回答No.2

  N = 100   Me.進行ゲージ.Max = N   Me.進行ゲージ.Value = 0   Me.進行ゲージ.Visible = True   For I = 1 To N

noname#140971
noname#140971
回答No.1

プログレスバーに進行状況を表示するサンプルコードです。 Private Sub Form_Load()   Me.進行ゲージ.Visible = False End Sub Private Sub コマンド0_Click()   Dim I As Integer   Dim N As Integer      Me.進行ゲージ.Max = 100   Me.進行ゲージ.Value = 0   Me.進行ゲージ.Visible = True   For I = 1 To 100     Me.進行ゲージ.Value = I     Pause 0.1     DoEvents   Next I   Me.進行ゲージ.Visible = False End Sub [標準モジュール] Public Sub Pause(ByVal PauseTime As Single)   Dim Finish As Single      Finish = Timer + PauseTime   Do     DoEvents   Loop Until Timer > Finish End Sub

Toshikazu2468
質問者

お礼

ありがとうございました。プログレスバーではなくフォームに表示したかったので。。 でも、やってみます!!

関連するQ&A