フォーム上に表示する警告メッセージをフラッシュさせるには

フォーム上に警告メッセージを表示するとき、メッセージをフラッシュさせるためのテクニックを解説します。


  1. Access 97を起動して新規データベースを作成します。
  2. データベースウインドウが表示されたらフォームのタブをクリックして新規作成のボタンをクリックします。
  3. フォーム上にテキストボックス(予定日)とラベル(警告メッセージ用)を作成します。

    Forms_Beginner_006_fig1
    図1-フォーム上に予定日のテキストボックスと警告メッセージ用のラベルを作成した例

    各オブジェクトのプロパティは、以下のように設定します。

    Object Property Setting
    Lable Name lblWarningMsg
    Caption 遅延!
    TextBox Name txtDueDate
    Format yyyy/mm/dd
    Lable Name 任意
    Caption 予定日:
  4. フォームのOn TimerOn 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
    
  5. フォームをビューモードに切り替えたら、予定日をシステム日付以前に設定して警告メッセージが表示されるか確認します。予定日がシステム日付以降のときは、警告メッセージは表示されません。

    Forms_Beginner_006_fig2
    図2-予定日がシステム日付以前のとき警告メッセージをフラッシュさせます