我一直在使用VBA一年或更長時間,但是我完全自學成功,遠沒有進階。我用StackOverflow無數次地解決了我的問題,但是這是我的第一個問題,所以請原諒任何問題。將查詢條件的VBA傳遞函數參數作爲變量
我有一個表單,我想用作查詢條件的文本框。如果我的文本框只包含我想要搜索的1個值,則當前可以運行查詢,但是如果我想搜索多個值,則會遇到問題。
我跟着這個過程中獲得儘可能我有 Using Variables in VBA to Filter Access 2007 Queries
我的計劃是使用功能 類似標準,無論是通過一個標準的字符串:GetCrit()
其中GetCrit是公共職能爲字符串在一個單獨的模塊中,返回字符串 In("Value1",Value2")
然後我的想法是簡單地將參數設置爲函數GetCrit()
定義的變量。即:查詢條件是In(GetCrit())
。
我無法獲得這兩個選項中的任何一個,因爲我相信目前查詢的查找值滿足字符串"In(GetCrit())"
,因爲我的函數被定義爲一個字符串。
我打算將文本框更改爲包含所有可能值的組合或列表框,然後使用宏將選擇轉換爲可以類似於In(「Value1」,「Value2」)讀取的字符串,但我願意提供更好的方法來實現這一目標。如下圖所示
,即形式在我的應用代碼
:
Private Sub btnGen_Click()
SetQueryCriteria
End Sub
Public Sub SetQueryCriteria()
Dim MatrixCriteria As String
Dim holder As String
holder = [Forms]![frm_Name]![TXTBox].Value
SetCrit holder
End Sub
在模塊1:
Private strCrit As String
Public Sub SetCrit(Value As String)
strCrit = Value
End Sub
Public Function getcrit() As String
getcrit = strCrit
End Function
而對於我查詢的標準是目前
In(GetCrit())
比KS!
編輯: 隨着我繼續研究,我發現,也許是一個多選列表框可能是我想在這裏使用
使用多選列表框從相同字段中選擇多個搜索參數是有效的方法。查看http://allenbrowne.com/ser-50.html。 – June7