适用于: Access 2013 | Access 2016
确定表达式的值是否在指定的值范围内。 在 SQL 语句中使用此运算符。
语法
expr [ Not ] betweenvalue1andvalue2
Between...And 运算符语法包含以下部分:
部分 | 说明 |
---|---|
expr | 标识包含要评估数据的字段的表达式。 |
value1, value2 | 表达式,用于计算 expr。 |
备注
如果 expr 的值在 value1 和 value2 之间(包含 value1 和 value2),Between...And 运算符将返回 True;否则,返回 False。 可包括 Not 逻辑运算符以评估相反的条件(即 expr 是否位于 value1 和 value2 定义的范围之外)。
可以使用 Between…And 来确定字段的值是否在指定的数值范围内。 以下示例确定订单是否已发送到邮政编码范围内的某个位置。 如果邮政编码介于 98101 和 98199 之间,则 IIf 函数返回 "Local"
。 否则,将返回 "Nonlocal"
。
SELECT IIf(PostalCode Between 98101 And 98199, "Local", "Nonlocal")
FROM Publishers;
如果 expr、value1 或 value2 为 Null,则 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
另请参阅
- 访问开发人员论坛
- 访问 support.office.com 上的帮助
- 访问 answers.microsoft.com 上的帮助
- 访问 UtterAccess 上的论坛
- 访问开发人员和 VBA 编程帮助中心 (FMS)
- 访问 StackOverflow 上的帖子
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。