Between…And 运算符

适用于: Access 2013 | Access 2016

确定表达式的值是否在指定的值范围内。 在 SQL 语句中使用此运算符。

语法

expr [ Not ] betweenvalue1andvalue2

Between...And 运算符语法包含以下部分:

部分 说明
expr 标识包含要评估数据的字段的表达式。
value1, value2 表达式,用于计算 expr

备注

如果 expr 的值在 value1value2 之间(包含 value1 和 value2),Between...And 运算符将返回 True;否则,返回 False。 可包括 Not 逻辑运算符以评估相反的条件(即 expr 是否位于 value1value2 定义的范围之外)。

可以使用 Between…And 来确定字段的值是否在指定的数值范围内。 以下示例确定订单是否已发送到邮政编码范围内的某个位置。 如果邮政编码介于 98101 和 98199 之间,则 IIf 函数返回 "Local"。 否则,将返回 "Nonlocal"

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

如果 exprvalue1value2Null,则 Between...And 将返回 Null 值。

由于通配符(例如 *)被视为文本,因此不能将它们与 Between…And 运算符一起使用。 例如,不能使用 980*989* 来查找以 980 到 989 开头的所有邮政编码。

相反,你有两种替代方法可以实现此目的。 可以向查询添加一个表达式,该表达式采用文本字段左侧的三个字符,并在这些字符之间使用 Between…And。 或者,如果使用扩展的邮政编码,则可以使用额外字符填充高值和低值,在本例中为 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。