DoEvents関数 : Access

Access DoEvents関数は発生したイベントがオペレーティング システムによって処理されるように、プログラムで占有していた制御をオペレーティングシステムに渡す関数

BackHomeへ BackAccess関数メニューへ



連続したプログラムを実行中に、他のイベントを発生させる関数です。
分かりにくいですが、実際に使用するのは次のような場合です。
ループで処理を行っている場合、ループ中に文字を表示させようとすると表示できません。
ループ処理が終了した時点で、表示されます。
このような場合、ループ中に DoEvents関数を入れると、表示命令が実行されるようになります。

例. この場合、ラベルに表示されません
For i=1 To 500
 me!ラベル1.caption=i
 処理
next

例. DoEventsを入れると、ラベルに表示され、変化を見ることができます
For i=1 To 500
 Me!ラベル1.caption=i
 DoEvents
 処理
next

■ 構文
DoEvents( )

■ 戻り値
0が返ります

■ Access実行画面

↑ボタンをクリックすると、日付に+1されテキストボックスに表示されます。
↓ボタンをクリックすると、日付に-1されテキストボックスに表示されます。
コマンドボタンは、自動繰り返しプロパティが「はい」に設定されているので、ボタンを押し続けると連続して日付が表示されます。
押し続けた場合、DoEventsがないと日付が変わっていくのが見えません。
従いまして、DoEventsは非常に役に立つ関数になります。
日付の設定ソフト


■ Access VBA 実行コード

Option Compare Database
Private Sub DateDisp(n As Integer)
    Dim tdate As Date
    tdate = Me!テキスト0
    '日付に加算
    Me!テキスト0 = DateAdd("d", n, tdate)
    'このDoeventsがないと、連続で呼び出された場合、表示できない
    DoEvents
End Sub
Private Sub Form_Load()
    Me!テキスト0 = Date
End Sub
'次の日
Private Sub コマンド2_Click()
    Call DateDisp(1)
End Sub
'前の日
Private Sub コマンド3_Click()
    Call DateDisp(-1)
End Sub



BackHomeへ BackAccess関数メニューへ

Copyright(C) FeedSoft