2017-07-18 10 views
0

私は、多くのコントロールを持つフォームを持っています。私は、検索条件として任意のフィールド値を使用してフォーム上の任意のレコードを検索することができますカスタムフィルタを作成したいと思います。たとえば :などのユーザーIDを使用してレコードを検索することができますかグレードを使用して検索することができ、MS Accessでユーザー入力に基づいてカスタムフィルターを作成する方法

私は今のfollwingコードをwriitenています

Private Sub CmdFind_Click() 
    Dim filterStr As String 
    Dim strWhere As String 

     filterStr = InputBox("Enter your filter criteria") 
     strWhere = "[SalesOrderNumber] = '" & filterStr & "' " 

     Me.Filter = strWhere 
     Me.FilterOn = True 

     End Sub 

しかし、これは唯一の「SalesOrderNumber」を検索します。他の値を使って検索する機能も欲しい。 ご協力いただければ幸いです。ありがとうございます

+0

私が次に持っている代わりに、複数の – June7

+0

レビューユーザーが検索するフィールドを選択できるコンボボックス、およびパラメータの入力用の別のコントロール。 2番目のコントロールがコンボボックスの場合は、選択したフィールドに従ってRowSourceを変更する必要があります。フィールドが異なるデータ型である場合、コードはそれを考慮する必要があります。だから、これはかなり複雑になることがわかります。私はこれをしました。または、Filterプロパティを設定する代わりにFindメソッドを使用します。しかし、これは基準に合致する最初の記録にのみ行きます。 – sb25

+0

の単一のテキストコントロールを使用したいhttp://new.allenbrowne.com/ser-62.html – June7

答えて

1

私は理解できます。複数のフィールドを検索したい。そのあなたが使用してよい場合OR句で

Private Sub CmdFind_Click() 

    Dim filterStr As String 
     filterStr = InputBox("Enter your filter criteria") 

    Dim filters(0 To 2) As String 
     filters(0) = BuildCriteria("SalesOrderNumber", dbText, filterStr) 
     filters(1) = BuildCriteria("UserPhoneNumber", dbText, filterStr) 
     filters(2) = BuildCriteria("Comments", dbText, filterStr) 

    Me.Filter = Join(filters, " OR ") 
    Me.FilterOn = True 

End Sub 
+0

ありがとうございました。それは魅力のように働いています。これはまさに私が探していたものです。:- – sb25

関連する問題