Поделиться через


Оператор между... и

Применяется для: Access 2013 | Access 2016

Определяет, соответствует ли значение выражения указанному диапазону значений. Используйте этот оператор в инструкциях SQL.

Синтаксис

expr [ Not ] Междузначением1изначением2

Синтаксис оператора между... и состоит из следующих элементов:

Часть Описание
expr Выражение, определяющее поле с данными, которые вы хотите оценить.
значение1, значение2 Выражения, по которым требуется оценить expr.

Замечания

Если значение expr находится между значениями value1 и value2 (включительно), значение Между... Оператор And возвращает значение True; В противном случае возвращается значение False. Вы можете включить логический оператор Not для оценки противоположных условий (т.е. находится ли значение expr вне диапазона, определяемого value1 и value2 ).

Вы можете использовать оператор между... и для определения того, находится ли значение поля в указанном числовом диапазоне. В примере ниже определяется, доставлен ли заказ до места в диапазоне указанных почтовых индексов. Если почтовый индекс находится в диапазоне между 98101 и 98199, функция IIf возвращает "Local". В противном случае возвращается "Nonlocal".

SELECT IIf(PostalCode Between 98101 And 98199, "Local", "Nonlocal")
FROM Publishers;

Если expr, value1 или value2 имеет значение Null, Между... Возвращает значение NULL .

Так как подстановочный знак, например, *, всегда рассматриваются как литералы, вы не сможете использовать их с оператором между... и. Например,вы не можете использовать 980* и 989* для поиска почтовых индексов, которые начинаются с 980-989.

Вместо этого, у вас есть две основные альтернативы для решения данной задачи. Вы можете добавить выражение к запросу, который оставляет три символа текстового поля и использовать оператор между... и для этих символов. Или вы можете использовать высокие и низкие значения с дополнительными символами, в этом случае от 98000 до 98999 или от 98000 до 98999-9999 при использовании расширенных почтовых индексов. (Необходимо опустить значение - 0000 из низких значений, так как в противном случае 98000 удаляется, если некоторые почтовые индексы имеют расширенные разделы, а другие нет.)

Пример

В данном примере перечислены имена и контактные данные каждого клиента, разместившего заказ во втором квартале 1995 года.

В этом примере вызывает процедуре EnumFields, которую можно найти в приведенном примере инструкции SELECT.

Sub SubQueryX() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
    
    ' List the name and contact of every customer  
    ' who placed an order in the second quarter of 
    ' 1995. 
 
    Set rst = dbs.OpenRecordset("SELECT ContactName," _ 
        & " CompanyName, ContactTitle, Phone" _ 
        & " FROM Customers" _ 
        & " WHERE CustomerID" _ 
        & " IN (SELECT CustomerID FROM Orders" _ 
        & " WHERE OrderDate Between #04/1/95#" _ 
        & " And #07/1/95#);") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 25 
 
    dbs.Close 
 
End Sub

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.