LIKEクエリを使用してフォームのデータをフィルタリングするために使用するフォームウィッチのテキストボックス(そのIDに "D_find")があります。キーアップで更新イベントが発生する
私は次のコードを持っている:
Private Sub D_find_AfterUpdate()
Dim fil
fil = Me.D_find
If fil = Null Then
fil = ""
End If
Me.Filter = "DeloN Like '" + fil + "*'"
End Sub
私はタブを押すか、フォーム上のいくつかの他のコントロールにフォーカスが、私はすぐにテキストボックスのからkeyupイベントの後にフィルタを適用する必要がある場合、それが正常に機能していますが、私はそれに傾きますD_find_keyupでこのコードを使用すると、は常にになります.D_findはNULLですが、現在のシナリオでは空でない限り常にNULLになりません。
現在のシナリオに存在する第二のトラブル:AfterUpdateを焼成し、フィルタが適用された後、D_findテキストボックス内のテキストの色が白になるだろうと私は、このテキストボックス(D_find)中のsomethinを入力するか、テキストの一部を切断した後、それは黒にロールバックしを。
-
私の悪い英語を申し訳ありません。
AfterUpdateを使用しても問題なく動作しますが、「遅すぎます」。私は "ライブフィルタ"が必要です。 NameOfControlのChangeまたはKeyUpイベントを使用する場合、NameOfControl.TextまたはNameOfControl.Valueには常にNullがあります。また、NameOfControl.SetFocusを使用して値を読み取る前にNullも受け取ります。 –
私はさらにノートを追加しました。それがあなたのために働かないなら、他の根本的な問題があるかもしれません。多くの場合、新しいフォームでテストする価値があります。 – Fionnuala