2013-04-30 42 views
3

當用戶在子表單上的記錄之間切換時,我希望另一個字段臨時突出顯示,以引起用戶注意它已更改。MS Access VBA暫時突出顯示字段

我認爲這會工作:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Private Sub Form_Current() 
    Form_frm_Codes.txtCodeToAdd = Me.Code.Value 
    Form_frm_Codes.txtCodeToAdd.BackColor = RGB(0, 0, 255) 
    Sleep (500) 
    Form_frm_Codes.txtCodeToAdd.BackColor = RGB(255, 255, 255) 
End Sub 

休眠功能趨於暫停節目半秒,但我不imediately之前看到藍色的變化。

任何想法或甚至更好的方式來實現這一目標?

回答

1

而不是使用API​​嘗試下面的代碼

Private Sub Form_Current() 
    Form_frm_Codes.txtCodeToAdd = Me.Code.Value 
    Form_frm_Codes.txtCodeToAdd.BackColor = RGB(0, 0, 255) 
    delay 5 
    Form_frm_Codes.txtCodeToAdd.BackColor = RGB(255, 255, 255) 
End Sub 

Private Sub delay(seconds As Long) 
    Dim endTime As Date 
    endTime = DateAdd("s", seconds, Now()) 
    Do While Now() < endTime 
     DoEvents 
    Loop 
End Sub 

或睡覺前添加的DoEvents更新的畫面。

Private Sub Form_Current() 
    Form_frm_Codes.txtCodeToAdd = Me.Code.Value 
    Form_frm_Codes.txtCodeToAdd.BackColor = RGB(0, 0, 255) 
    DoEvents 
    Sleep (500) 
    Form_frm_Codes.txtCodeToAdd.BackColor = RGB(255, 255, 255) 
End Sub 
+0

太棒了!所有這些年來,我從未使用過DoEvents ... – Warren 2013-04-30 22:49:02