2017-07-18 55 views
0

我有一個表單,它有很多控件。我想創建自定義過濾器,允許用戶使用任何字段值作爲搜索條件搜索表單上的任何記錄。 例如:用戶使用ID可以搜索記錄或可使用等級等如何根據MS Access中的用戶輸入創建自定義過濾器

我已經wriiten的follwing代碼現在搜索:

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」。我希望功能也可以使用其他值進行搜索。 任何幫助,將不勝感激。 Thankyou

+0

評論http://new.allenbrowne.com/ser-62.html – June7

+0

我想用單一的文本控件,而不是多個 – sb25

+0

然後有一個組合框,用戶可以選擇要搜索的字段,另一個控件用於輸入參數。如果第二個控件是組合框,則必須根據所選字段更改其RowSource。如果這些字段是不同的數據類型,則代碼必須考慮這一點。所以你看這可能會變得相當複雜。我已經做到了。或者使用Find方法而不是設置Filter屬性。但是這僅僅是第一個符合標準的記錄。 – 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

相關問題