try using the before update event.(as Micron suggested) If you cancel the update, focus remains in the textbox.
Code:
Private Sub Text0_BeforeUpdate(Cancel As Integer)
Dim i As Integer
If Me.Text0 <> "a" Then 'change for your criteria
Cancel = True
For i = 1 To 10
If Me.LWarning.Visible = False Then
Me.LWarning.Visible = True
Else
Me.LWarning.Visible = False
End If
Pause 0.25
Next i
Me.Text0.SelStart = 0
Me.Text0.SelLength = Len(Me.Text0)
End If
End Sub
Code:
Public Function Pause(NumberOfSeconds As Variant)
On Error GoTo Err_Pause
Dim PauseTime As Variant, start As Variant
PauseTime = NumberOfSeconds
start = Timer
Do While Timer < start + PauseTime
DoEvents
Loop
Exit_Pause:
Exit Function
Err_Pause:
MsgBox Err.Number & " - " & Err.Description, vbCritical, "Pause()"
Resume Exit_Pause
End Function