Application.BuildCriteria 方法 (Access)

BuildCriteria方法會傳回剖析的準則字串,就像它出現在查詢設計方格中的 [依窗體篩選] 或[依表單伺服器篩選] 模式中一樣。 例如,可能會想要設定表單的 FilterServerFilter 屬性根據使用者從不同的準則。 使用 BuildCriteria 方法來建構 FilterServerFilter 屬性的字串運算式引數。 字串

語法

運算式BuildCriteria (FieldFieldTypeExpression)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Field 必要 String 要為其定義準則的欄位。
FieldType 必要 Integer 要資料類型欄位的內部常數。 您可以將其中一個 DAO DataTypeEnum 值。
Expression 必要 String 為一字串運算式,用來識別您要剖析的準則。

傳回值

字串

註解

BuildCriteria 方法可讓您輕鬆地建構根據使用者輸入的篩選準則。 它會剖析 表達 式引數,其方式與在查詢設計方格中以 [依表單篩選 ] 或 [ 依表單 伺服器 篩選] 模式輸入運算式時剖析運算式的方式相同。

例如,在 Orders 資料表上建立查詢的使用者可能會藉由在 OrderDate 字 段上設定準則,將結果集限制為 1995 年 1 月 1 日之後的訂單。 使用者可能會在 [OrderDate] 字段下方的 [準則] 資料列中輸入如下的運算式:

1-1-95

Microsoft Access 會自動剖析此運算式並傳回以下運算式:

#1/1/95#

BuildCriteria 方法提供相同的剖析從 Visual Basic 程式碼。 例如,若要傳回上述正確地剖析字串,可以提供 BuildCriteria 方法的下列引數:

Dim strCriteria As String 
strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95")

因為您需要以正確剖析的形式提供 Filter 屬性的準則,所以您可以使用 BuildCriteria 方法來建構正確剖析的字串。

如果這些準則參考相同的欄位,請使用 BuildCriteria 方法來建構具有多個準則的字串。 例如,您可以使用 BuildCriteria 方法搭配下列引數來建構具有多個與 OrderDate 字 段相關準則的字串:

strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95 and <5-1-95")

此範例會傳回下述準則字串:

OrderDate>#1/1/95# And OrderDate<#5/1/95#

不過,如果您想要建構參照多個欄位的準則字串,必須建立字串並串連它們。 例如,如果您想要建構準則篩選,以顯示 [記錄與 1-1-95 之後的訂單的運費是低於 $50、 嗎必須按兩次使用 BuildCriteria 方法並串連所產生的字串。

範例

下列範例會提示使用者輸入的產品名稱的第幾個字母,然後使用 BuildCriteria 方法來建構 criteria 字串根據使用者的輸入。 接下來,程序提供此字串做為引數之 Products 表單之 Filter 屬性。 最後,將 FilterOn 屬性設為套用篩選。

Sub SetFilter() 
 Dim frm As Form, strMsg As String 
 Dim strInput As String, strFilter As String 
 
 ' Open Products form in Form view. 
 DoCmd.OpenForm "Products" 
 ' Return Form object variable pointing to Products form. 
 Set frm = Forms!Products 
 strMsg = "Enter one or more letters of product name " _ 
 & "followed by an asterisk." 
 ' Prompt user for input. 
 strInput = InputBox(strMsg) 
 ' Build criteria string. 
 strFilter = BuildCriteria("ProductName", dbText, strInput) 
 ' Set Filter property to apply filter. 
 frm.Filter = strFilter 
 ' Set FilterOn property; form now shows filtered records. 
 frm.FilterOn = True 
End Sub

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應