長い処理を行う場合に、進行状況をユーザーに知らせる為のプログレスバーを下のステータスバーに表示します。
プログレスバーの表示は下記のコマンドを使用します。
- SysCmd acSysCmdInitMeter : 初期化します。
- SysCmd acSysCmdUpdateMeter : 指定した値にセットします
- SysCmd acSysCmdRemoveMeter : 終了します。
■ 実行フォーム
[実行]ボタンをクリックすると、ステータスバーに「実行中・・・」と表示され、プログレスバーが開始します。
途中画面です。
終了するとプログレスバーは消去されます。
■ Access VBA 実行コード例
ここでは長い処理の代わりに、一秒タイマーを使用しています。
Option Compare Database
Option Explicit
'時間の掛かる処理を実行
Private Sub 処理()
Dim stimer As Single
Dim lval As Long
'1秒待ち
lval = 1
'開始時間
stimer = Timer
Do Until Timer > stimer + lval
DoEvents
Loop
End Sub
Private Sub コマンド7_Click()
Dim i As Long
'砂時計のマウスポインタ
DoCmd.Hourglass True
'ステータスバーの初期値
SysCmd acSysCmdInitMeter, "実行中・・・", 10
'処理内容を入力
For i = 1 To 10
'ステータスバーの値をセット
SysCmd acSysCmdUpdateMeter, i
Call 処理
Next
'ステータスバーの終了処理
SysCmd acSysCmdRemoveMeter
'マウスポインタを戻す
DoCmd.Hourglass False
MsgBox "処理を終了しました"
End Sub