如果您需要指定更多备选条件,请使用“或”行下面的行。
在继续这些示例之前,请注意下列几点:
∙如果条件是临时的或者经常更改,则可以筛选查询结果,而不是频繁修改查询条件。
筛选器是更改查询结果但不更改查询设计的临时条件。
有关筛选器的详细信息,请参阅文章筛选:
限制视图中的记录数。
∙如果条件字段不变,但是您感兴趣的值频繁更改,则可以创建参数查询。
参数查询会提示用户提供字段值,然后使用这些值创建查询条件。
有关参数查询的详细信息,请参阅文章在查询和报表中使用参数。
文本、备注和超链接字段的条件
下面的示例针对某个查询中的“国家/地区”字段,该查询基于一个存储联系人信息的表。
条件是在设计网格中该字段的“条件”行中指定的。
为超链接字段指定的条件默认情况下应用于该字段值的显示文本部分。
若要为该值的目标统一资源定位器(URL)部分指定条件,请使用“HyperlinkPart”表达式。
此表达式的语法如下:
HyperlinkPart([Table1].[Field1],1)="Table1是包含超链接字段的表的名称,Field1是超链接字段,是要匹配的URL。
若要包含满足下面条件的记录
使用此条件
查询结果
完全匹配一个值,如“China”
"China"
返回“国家/地区”字段设置为“China”的记录。
不匹配某个值,如“Mexico”
Not"Mexico"
返回“国家/地区”字段设置为“Mexico”以外的国家/地区的记录。
以指定的字符串开头,如U
LikeU*
返回名称以“U”开头的所有国家/地区(如UK、USA等等)的记录。
注释 当在表达式中使用星号(*)时,它表示任意字符串-它也称为通配符。
有关此类字符的列表,请参阅文章Access通配符参考。
不以指定字符串开头,如U
NotLikeU*
返回名称以“U”以外的字符开头的所有国家/地区的记录。
包含指定字符串,如“Korea”
Like"*Korea*"
返回包含字符串“Korea”的所有国家/地区的记录。
不包含指定字符串,如“Korea”
NotLike"*Korea*"
返回不包含字符串“Korea”的所有国家/地区的记录。
以指定字符串结尾,如“ina”
Like"*ina"
返回名称以“ina”结尾的所有国家/地区(如China和Argentina)的记录。
不以指定字符串结尾,如“ina”
NotLike"*ina"
返回以“ina”结尾的所有国家/地区(如China和Argentina)之外的记录。
包含Null值(即缺少值)
IsNull
返回该字段中没有值的记录。
不包含Null值
IsNotNull
返回该字段中不缺少值的记录。
包含零长度字符串
""(一对引号)
返回该字段设置为空(不是Null)值的记录。
例如,提供给另一个部门的销售记录可能在“国家地区”字段中包含空值。
不包含零长度字符串
Not""
返回“国家/地区”字段含有非空值的记录。
包含Null值或零长度字符串
""OrIsNull
返回该字段中没有值或者该字段设置为空值的记录。
不为空
IsNotNullAndNot""
返回“国家/地区”字段含有非空、非Null值的记录。
按字母顺序排在某个值(如Mexico)后面
>="Mexico"
返回从Mexico开始一直到字母表结束的所有国家/地区的记录。
在指定范围内,如A到D
Like"[A-D]*"
返回名称以字母“A”到“D”开头的国家/地区的记录。
匹配两个值中的任一值,如USA或UK
"USA"Or"UK"
返回对应USA和UK的记录。
包含值列表中的任一值
In("France","China","Germany","Japan")
返回对应列表中指定的所有国家/地区的记录。
在字段值的特定位置包含某些字符
Right([CountryRegion],1)="y"
返回最后一个字母为“y”的所有国家/地区的记录。
满足长度要求
Len([CountryRegion])>10
返回名称长度大于10个字符的国家/地区的记录。
匹配特定模式
Like"Chi?
?
"
返回名称为五个字符长并且前三个字符为“Chi”的国家/地区(如China和Chile)的记录。
注释 字符?
和_在表达式中使用时表示单个字符,这些字符也称为通配符。
字符_不能在包含?
字符的表达式中使用,也不能在包含*通配符的表达式中使用。
您可以在同时包含%通配符的表达式中使用通配符_。
数字、货币和自动编号字段的条件
下面的示例针对某个查询中的“单价”字段,该查询基于一个存储产品信息的表。
条件是在查询设计网格中该字段的“条件”行中指定的。
若要包含满足下面条件的记录
使用此条件
查询结果
完全匹配一个值,如100
100
返回产品单价为¥100的记录。
不匹配某个值,如1000
Not1000
返回产品单价不为¥1000的记录。
包含小于某个值(如100)的值
<100
<=100
返回单价低于¥100(<100)的记录。
第二个表达式(<=100)显示单击低于或等于¥100的记录。
包含大于某个值(如99.99)的值
>99.99
>=99.99
返回单价高于¥99.99(>99.99)的记录。
第二个表达式显示单击高于或等于¥99.99的记录。
包含两个值(如20或25)中的任一值
20or25
返回单价为¥20或¥25的记录。
包含某个值范围之内的值
>49.99and<99.99
-或-
Between50and100
返回单价介于(但不包括)¥49.99和¥99.99之间的记录。
包含某个范围之外的值
<50or>100
返回单价不在¥50和¥100之间的记录。
包含多个特定值之一
In(20,25,30)
返回单价为¥20、¥25或¥30的记录。
包含以指定数字结尾的值
Like"*4.99"
返回单价以“4.99”结尾(如¥4.99、¥14.99、¥24.99等等)的记录。
注释 字符*和%在表达式中使用时表示任意数量的字符,这些字符也称为通配符。
字符%不能在包含*字符的表达式中使用,也不能在包含?
通配符的表达式中使用。
您可以在同时包含_通配符的表达式中使用通配符%。
包含Null值(即缺少值)
IsNull
返回“单价”字段中未输入值的记录。
包含非Null值
IsNotNull
返回“单价”字段中不缺少值的记录。
日期/时间字段的条件
下面的示例针对某个查询中的“订购日期”字段,该查询基于一个存储订单信息的表。
条件是在查询设计网格中该字段的“条件”行中指定的。
若要包含满足下面条件的记录
使用此条件
查询结果
完全匹配一个值,如2/2/2006
#2/2/2006#
返回交易发生在2006年2月2日的记录。
请记住在日期值两边括以#字符,以使Access可区分日期值和文本字符串。
不匹配某个值,如2/2/2006
Not#2/2/2006#
返回交易不是发生在2006年2月3日的记录。
包含某个特定日期(如2/2/2006)之前的值
<#2/2/2006#
返回交易发生在2006年2月2日之前的记录。
若要查看发生在该日期或该日期之前的交易,请使用<=运算符而不是<运算符。
包含某个特定日期(如2/2/2006)之后的值
>#2/2/2006#
返回交易发生在2006年2月2日之后的记录。
若要查看交易发生在该日期或该日期之后的记录,请使用>=运算符而不是>运算符。
包含某个日期范围之内的值
>#2/2/2006#and<#2/4/2006#
返回交易发生在2006年2月2日和2006年2月4日之间的记录。
也可以使用Between运算符筛选一定范围的值。
例如,Between#2/2/2006#and#2/4/2006#与>#2/2/2006#and<#2/4/2006#相同。
包含某个范围之外的值
<#2/2/2006#or>#2/4/2006#
返回交易发生在2006年2月2日之前或2006年2月4日之后的记录。
包含两个值中的任一值,如2/2/2006或2/3/2006
#2/2/2006#or#2/3/2006#
返回交易发生在2006年2月2日或2006年2月3日的记录。
包含多个值之一
In(#2/1/2006#,#3/1/2006#,#4/1/2006#)
返回交易发生在2006年2月1日、2006年3月1日或2006年4月1日的记录。
包含特定月份(与年份无关)内的某个日期,如12月
DatePart("m",[销售日期])=12
返回交易发生在任何一年的12月的记录。
包含特定季度(与年份无关)内的某个日期,如一季度
DatePart("q",[销售日期])=1
返回交易发生在任一年的第一季度的记录。
包含今天的日期
Date()
返回交易发生在当天的记录。
如果当天日期为2/2/2006,则您将看到“订购日期”字段设置为2006年2月2日的记录。
包含昨天的日期
Date()-1
返回交易发生在当天的前一天的记录。
如果当天日期为2/2/2006,则您将看到2006年2月1日的记录。
包含明天的日期
Date()+1
返回交易发生在当天的后一天的记录。
如果当天日期为2/2/2006,则您将看到2006年2月3日的记录。
包含当前星期内的日期
DatePart("ww",[销售日期])=DatePart("ww",Date())andYear([销售日期])=Year(Date())
返回交易发生在当前星期内的记录。
一个星期从星期日开始到星期六结束。
包含上一星期内的日期
Year([销售日期])*53+DatePart("ww",[销售日期])=Year(Date())*53+DatePart("ww",Date())-1
返回交易发生在上个星期的记录。
一个星期从星期日开始到星期六结束。
包含下个星期内的日期
Year([销售日期])*53+DatePart("ww",[销售日期])=Year(Date())*53+DatePart("ww",Date())+1
返回交易将在下个星期发生的记录。
一个星期从星期日开始到星期六结束。
包含前7天内的日期
BetweenDate()andDate()-6
返回交易发生在前7天的记录。
如果当天日期为2/2/2006,则您将看到从2006年1月24日到2006年2月2日这段时间的记录。
包含属于当前月的日期
Year([销售日期])=Year(Now())AndMonth([销售日期])=Month(Now())
返回当前月的记录。
如果当天日期为2/2/2006,则您将看到2006年2月的记录。
包含属于上个月的日期
Year([销售日期])*12+DatePart("m",[销售日期])=Year(Date())*12+DatePart("m",Date())-1
返回上个月的记录。
如果当天日期为2/2/2006,则您将看到2006年1月的记录。
包含属于下个月的日期
Year([销售日期])*12+DatePart("m",[销售日期])=Year(Date())*12+DatePart("m",Date())+1
返回下个月的记录。
如果当天日期为2/2/2006,则您将看到2006年3月的记录。
包含前30天或31天内的日期
BetweenDate()AndDateAdd("M",-1,Date())
一个月的销售记录。
如果当天日期为2/2/2006,则您将看到从2006年1月2日到2006年2月2日这段时间的记录
包含属于当前季度的日期
Year([销售日期])=Year(Now())AndDatePart("q",Date())=DatePart("q",Now())
返回当前季度的记录。
如果当天日期为2/2/2006,则您将看到2006年一季度的记录。
包含属于上个季度的日期
Year([销售日期])*4+DatePart("q",[销售日期])=Year(Date())*4+DatePart("q",Date())-1
返回上个季度的记录。
如果当天日期为2/2/2006,则您将看到2005年最后一个季度的记录。
包含属于下个季度的日期
Year([销售日期])*4+DatePart("q",[销售日期])=Year(Date())*4+DatePart("q",Date())+1
返回下个季度的记录。
如果当天日期为2/2/2006,则您将看到2006年二季度的记录。
包含当年内的日期
Year([销售日期])=Year(Date())
返回当年的记录。
如果当天日期为2/2/2006,则您将看到2006年的记录。
包含属于去年的日期
Year([销售日期])=Year(Date())-1
返回交易发生在去年的记录。
如果当天日期为2/2/2006,则您将看到2005年的记录。
包含属于明年的日期
Year([销售日期])=Year(Date())+1
返回交易日期为明年的记录。
如果当天日期为2/2/2006,则您将看到2007年的记录。
包含介于1月1日和今天之间的日期(当年到今天为止的记录)
Year([销售日期])=Year(Date())andMonth([销售日期])<=Month(Date())andDay([销售日期])<=Day(Date())
返回交易日期介于当年1月1日到当天之间的记录。
如果当天日期为2/2/2006,则您将看到从2006年1月1日到2006年2月2日这段时间的记录。
包含发生在过去的日期
返回交易发生在当天之前的记录。
包含发生在将来的日期
>Date()
返回交易将在当天之后发生的记录。
筛选Null值(即缺少值)
IsNull
返回缺少交易日期的记录。
筛选非Null值
IsNotNull
返回交易日期已知的记录。
其他字段的条件
“是/否”字段 在“条件”行中,键入是以包含复选框已选中的记录。
键入“否”以包含复选框未选中的记录。
附件 在“条件”行中,键入IsNull以包含不含任何附件的记录。
键入IsNotNull以包含含有附件的记录。
“查阅”字段 有两种类型的“查阅”字段:
在现有数据源中查阅值的“查阅”字段(使用外键)以及基于创建“查阅”字段时指定的值列表的“查阅”字段。
基于指定值的列表的“查阅”字段为文本数据类型,并且有效条件与其他文本字段相同。
可在基于现有数据源值的“查阅”字段中使用的条件取决于外键的数据类型,而不是所查阅的数据的数据类型。
例如,您可能有一个显示雇员姓名的“查阅”字段,但是该字段使用数字数据类型的外键。
因为该字段存储数字而不是文本,所以应使用对数字起作用的条件;即>2。
如果不知道外键的数据类型,则可以在设计视图中查看源表以确定字段的数据类型。
要执行此操作:
1.在“导航窗格”中找到源表。
2.使用下列方法之一在设计视图中打开该表:
∙单击该表,然后按Ctrl+Enter
∙右键单击该表,然后单击“设计视图”。
3.在表设计网格的“数据类型”列中列出了每个字段的数据类型。
多值字段 多值字段中的数据作为行存储在隐藏表中,该表由OfficeAccess2007创建并填充以用于表示该字段。
在查询设计视图中,它是通过使用可展开字段在“字段列表”中表示的。
若要对多值字段使用条件,应为隐藏表中的单个行提供条件。
要执行此操作:
1.创建一个包含多值字段的查询,并在设计视图中打开它。
2.单击多值字段旁边的加号(+)将其展开(如果该字段已经展开,则该符号为减号(-)。
就在该字段的名称下面,您将看到一个代表该多值字段的某一个值的字段。
此字段将与多值字段同名,但后面跟有字符串“.Value”。
3.将多值字段及其单值字段拖至设计网格中单独的列中。
如果想在结果中只看到完整的多值字段,请清除对应单值字段的“显示”复选框。
4.在单值字段的“条件”行中键入您的条件,使用适合于这些值所表示的数据类型的条件。
5.多值字段中的每个值将使用您提供的条件单独求值。
例如,您可能有一个存储了一系列数字的多值字段。
如果提供条件>5AND<3,则任何至少有一个值大于5且一个值小于3的记录都将匹配。
另请参阅
∙Access通配符参考
∙表达式的示例
∙查找、隐藏或删除重复数据
∙查找具有最近或最早日期的记录
∙查找组或字段中包含上限值和下限值的记录
∙函数(按字母顺序排列)