Метод Application.BuildCriteria (Access)
Метод BuildCriteria возвращает проанализированную строку условий, как она будет отображаться в сетке конструктора запроса в режиме фильтра по форме или серверного фильтра по форме . Например, может потребоваться задать свойство Filter или ServerFilter формы на основе различных критериев пользователя. Используйте метод BuildCriteria для создания аргумента строкового выражения для свойства Filter или ServerFilter . Строка.
Синтаксис
expression. BuildCriteria (Field, FieldType, Expression)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Field | Обязательный | String | Поле, для которого необходимо определить критерии. |
FieldType | Обязательный | Integer | Встроенная константа, обозначающая тип данных поля. Можно задать одно из значений DAO DataTypeEnum . |
Expression | Обязательный | String | Строковое выражение, определяющее условия для анализа. |
Возвращаемое значение
Строка
Замечания
Метод BuildCriteria позволяет легко создавать критерии для фильтра на основе входных данных пользователя. Он анализирует аргумент выражения так же, как выражение было бы проанализировано, если бы оно было введено в сетку конструктора запроса в режиме "Фильтр по форме " или "Фильтр по форме сервера ".
Например, пользователь, создающий запрос к таблице Orders, может ограничить результирующий набор заказами, размещенными после 1 января 1995 г., установив условия для поля OrderDate . Пользователь может ввести выражение, например следующее, в строке Условия под полем 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 для создания строки условий на основе входных данных пользователя. Далее процедура предоставляет эту строку в качестве аргумента для свойства Filter формы Products. Наконец, для применения фильтра задается свойство 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 и обратная связь.