BuildCriteria メソッド (Access)Application.BuildCriteria method (Access)

BuildCriteriaメソッドは、フォームフィルターまたはフォームサーバーフィルターモードでクエリデザイングリッドに表示されるように、解析された抽出条件文字列を返します。The BuildCriteria method returns a parsed criteria string as it would appear in the query design grid, in Filter By Form or Server Filter By Form mode. たとえば、ユーザーが入力する抽出条件を基にフォームの " Filter /フィルター" プロパティまたは " ServerFilter /サーバーフィルター" プロパティを設定するとします。For example, you may want to set a form's Filter or ServerFilter property based on varying criteria from the user. BuildCriteria メソッドを使用すると、" Filter /フィルター" プロパティまたは " ServerFilter /サーバーフィルター" プロパティ用の文字列式の引数を構成することができます。You can use the BuildCriteria method to construct the string expression argument for the Filter or ServerFilter property. 文字列型 ( String ) の値を使用します。String.


BuildCriteria(フィールドFieldType)expression.BuildCriteria (Field, FieldType, Expression)

expression**Application** オブジェクトを 表す変数。expression A variable that represents an Application object.


名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
FieldField 必須Required StringString 抽出条件を定義するフィールドを指定します。The field for which you wish to define criteria.
FieldTypeFieldType 必須Required 整数型 (Integer)Integer フィールドのデータ型を表す組み込み定数を指定します。An intrinsic constant denoting the data type of the field. DAO DataTypeEnum の値のいずれかに設定できます。Can be set to one of the DAO DataTypeEnum values.
ExpressionExpression 必須Required StringString 解析する抽出条件を定義する文字列式を指定します。A string expression identifying the criteria to be parsed.

戻り値Return value



BuildCriteria メソッドを使用すると、ユーザーの入力を基にフィルターの抽出条件を簡単に生成することができます。The BuildCriteria method enables you to easily construct criteria for a filter based on user input. Expression 引数は__ 、クエリデザイングリッド、フォームフィルターフォームサーバーフィルターモードで式が入力された場合と同じ方法で解析します。It parses the expression argument in the same way that the expression would be parsed had it been entered in the query design grid, in Filter By Form or Server Filter By Form mode.

たとえば、Orders テーブルに対してクエリを作成するユーザーは、[受注日] フィールドに抽出条件を設定することにより、1995年1月1日以降の注文に結果セットを制限することができます。For example, a user creating a query on an Orders table might restrict the result set to orders placed after January 1, 1995, by setting criteria on an OrderDate field. ユーザーは、[受注日] フィールドの下にある [抽出条件] 行に次の式を入力することができます。The user might enter an expression such as the following one in the Criteria row beneath the OrderDate field:


この式が解析され、次の式が返されます。Microsoft Access automatically parses this expression and returns the following expression:

#1/1/95 #1/1/95#

Visual Basic コードで BuildCriteria メソッドを使うと、この例と同じ解析機能を使うことができます。The BuildCriteria method provides the same parsing from Visual Basic code. たとえば、前の例で、正しく解析された文字列を返すには、次のように引数を BuildCriteria メソッドに指定します。For example, to return the preceding correctly parsed string, you can supply the following arguments to the BuildCriteria method:

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

Filterプロパティの抽出条件を正しく解析された形式で指定する必要があるため、 BuildCriteriaメソッドを使用して、正しく解析された文字列を作成できます。Because you need to supply criteria for the Filter property in correctly parsed form, you can use the BuildCriteria method to construct a correctly parsed string.

BuildCriteria メソッドを使用すると、複数の抽出条件を同じフィールドに適用して抽出条件の文字列を生成できます。You can use the BuildCriteria method to construct a string with multiple criteria if those criteria refer to the same field. たとえば、次の引数を指定してBuildCriteriaメソッドを使用すると、 OrderDateフィールドに関連する複数の条件を持つ文字列を作成できます。For example, you can use the BuildCriteria method with the following arguments to construct a string with multiple criteria relating to the OrderDate field:

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

この例では、次の抽出条件文字列が返されます。This example returns the following criteria string:

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

ただし、複数のフィールドに適用する抽出条件文字列を生成する場合は、各文字列を作成して、それらを連結する必要があります。However, if you wish to construct a criteria string that refers to multiple fields, you must create the strings and concatenate them yourself. たとえば、1995 年 1 月 1 日以降の受注のうち、運送料が \1,000 未満のレコードを抽出するフィルターの抽出条件を生成する場合には、BuildCriteria メソッドを 2 回使用し、作成した文字列を連結します。For example, if you wish to construct criteria for a filter to show records for orders placed after 1-1-95 and for which freight is less than $50, you would need to use the BuildCriteria method twice and concatenate the resulting strings.


次の例では、ユーザーに商品名の先頭部分の文字をいくつか入力するように促し、 BuildCriteria メソッドを使用して、ユーザーの入力に基づいた抽出条件文字列を生成します。The following example prompts the user to enter the first few letters of a product's name and then uses the BuildCriteria method to construct a criteria string based on the user's input. 次に、この文字列を [商品] フォームの " Filter /フィルター" プロパティに引数として設定します。Next, the procedure provides this string as an argument to the Filter property of a Products form. 最後に、" FilterOn /フィルター適用" プロパティを設定し、フィルターを適用します。Finally, the FilterOn property is set to apply the filter.

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

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.