処理の進み具合を示す方法【ステータスバー編】

スポンサーリンク
記事内に広告が含まれています。

前回の記事では、テキストボックスを使った処理の進み具合を示す方法を取り上げました。

今日は、アクセスの機能を使った方法をご紹介します。

アクセスのステータスバー領域

画面の左下にある「ステータスバー」。ここには、システムからのメッセージを表示することができます。

よく「フォームビュー」など表示されるアレですね。

VBAを使うことで、このステータスバー領域にオリジナルのメッセージを表示させることができます。

では、やってみましょう。

使用される際は、そちらの環境で十分テストのうえ使用してください。

スポンサーリンク

ステータスバーにメッセージを表示させる

ステータスバーにメッセージを表示させるには、「SysCmd acSysCmdSetStatus」というコマンドを使います。

ステータスバーにオリジナルのメッセージを表示する直前の状態

前回使ったフォームを流用します。

ボタン「btn_実行」のクリック時イベントに、次のコードを割り当ててください。

Option Compare Database
Option Explicit

Private Sub btn_実行_Click()

Dim syori As Long '現在処理した件数を格納
Dim kensu As Long  '処理する件数を格納

'処理件数を10件と仮定
kensu = 10

For syori = 1 To kensu

    'ステータスバーに処理した件数を代入
    SysCmd acSysCmdSetStatus, syori & "/" & kensu
    
    MsgBox syori
    
Next syori

'ステータスバーのメッセージを消去
SysCmd acSysCmdClearStatus

End Sub

実行ボタンを押して、コードを実行してみましょう。

ステータスバーにオリジナルのメッセージを表示

10回メッセージボックスが表示され、ステータスバーは、「メッセージボックスが表示された回数 / 処理件数」を表示します。

ステータスバーにオリジナルのメッセージを表示

メッセージボックスが10回表示されると、

ステータスバーのオリジナルのメッセージを消去

ステータスバーは元に戻ります。

スポンサーリンク

進行状況メーター編

続いては、進行状況メーター編です。

「SysCmd acSysCmdInitMeter」というコマンドを使います。

アクセスの進行状況メーター

進行状況メーターとは、クエリを実行するときに表示される、進行状況を示すバーグラフのことです。進行状況メーターとは、一般的にプログレスバーと呼ばれます。

この記事では、なじみの深い「プログレスバー」といいます。

進行状況メーターを表示する直前の状態

前回使ったフォームを流用します。

ボタン「btn_実行」のクリック時イベントに、次のコードを割り当ててください。

Private Sub btn_実行_Click()

Dim syori As Long '現在処理した件数を格納
Dim kensu As Long  '処理する件数を格納

'処理件数を10件と仮定
kensu = 10

SysCmd acSysCmdInitMeter, "処理中です…", kensu

For syori = 1 To kensu

    'ステータスバーに処理した件数を代入
    SysCmd acSysCmdUpdateMeter, syori
    
    MsgBox syori
    
Next syori

'ステータスバーのメッセージを消去
SysCmd acSysCmdClearStatus

End Sub

実行ボタンを押して、コードを実行してみましょう。

1回目のメッセージボックスが表示されたところ

画面右下に「処理中です…」の文字と、プログレスバーが出現しました。

5回目のメッセージボックスが表示されたところ

メッセージボックスのOKを押すと、次のメッセージが表示され、プログレスバーが伸びていきます。

最終回のメッセージボックスが表示されたところ

メッセージボックスが10回表示されると、

進行状況メーターが消去されたところ

プログレスバーは消去されます。

アクセスで大きな処理を行うと、アクセス全体が応答しない状態になってしまいますので、正常に動いているか不安になりますね。

いくつかの方法をご紹介しましたが、何らかの方法で、正常に処理していることが示されると安心です。

(b^ー°)

コメントをどうぞ!

タイトルとURLをコピーしました