フォーム上に警告メッセージを表示するとき、メッセージをフラッシュさせるためのテクニックを解説します。
- Access 97を起動して新規データベースを作成します。
- データベースウインドウが表示されたらフォームのタブをクリックして新規作成のボタンをクリックします。
- フォーム上にテキストボックス(予定日)とラベル(警告メッセージ用)を作成します。
 |
| 図1-フォーム上に予定日のテキストボックスと警告メッセージ用のラベルを作成した例 |
各オブジェクトのプロパティは、以下のように設定します。
| Object |
Property |
Setting |
| Lable |
Name |
lblWarningMsg |
| Caption |
遅延! |
| TextBox |
Name |
txtDueDate |
| Format |
yyyy/mm/dd |
| Lable |
Name |
任意 |
| Caption |
予定日: |
- フォームのOn Timer、On Currentイベントに以下のVBAコードを追加します。On
Currentイベントはレコードが移動したときに発生します。この例では、レコードが移動してカレントレコードの予定日がシステム日付以前なら警告メッセージを表示します。
この例では、非連結のテキストボックスを作成していますので、AfterUpdateイベントを設定してここからOn
Currentのイベントを呼び出しています。
| リスト1-各種イベント処理用VBAコード |
Private Sub Form_Timer()
With Me!lblWarningMsg
.ForeColor = (IIf(.ForeColor = vbRed, vbBlack, vbRed))
End With
End Sub
Private Sub Form_Current()
If CDate(Me!txtDueDate) < Date Then
Me.TimerInterval = 300
Me!lblWarningMsg.Visible = True
Else
Me.TimerInterval = 0
Me!lblWarningMsg.ForeColor = vbBlack
Me!lblWarningMsg.Visible = False
End If
End Sub
Private Sub txtDueDate_AfterUpdate()
Form_Current
End Sub
|
- フォームをビューモードに切り替えたら、予定日をシステム日付以前に設定して警告メッセージが表示されるか確認します。予定日がシステム日付以降のときは、警告メッセージは表示されません。
 |
| 図2-予定日がシステム日付以前のとき警告メッセージをフラッシュさせます |
|