それ、メッセージ花火でわざわざ伝えること?

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

A 回答 (4件)

#3です。



Call InitProgressとCall UpdateProgress(処理数/合計数)の後に、DoEventsを入れてもダメ?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/07/08 09:49

ラベルを使います。


例えば、
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


手抜きですがこんな感じですかね。
後はご自分で工夫してください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/24 17:09

  N = 100


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

プログレスバーに進行状況を表示するサンプルコードです。



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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/24 17:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!