Access查询条件示例.docx
- 文档编号:9228890
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:13
- 大小:22.92KB
Access查询条件示例.docx
《Access查询条件示例.docx》由会员分享,可在线阅读,更多相关《Access查询条件示例.docx(13页珍藏版)》请在冰豆网上搜索。
Access查询条件示例
Access查询条件示例
C#2009-05-1711:
31:
25阅读427评论0 字号:
大中小 订阅
查询条件简介
下表显示了某些示例条件并说明它们如何工作。
条件
说明
>25and<50
此条件适用于数字字段,如“价格”或“库存量”。
它仅包含这样的记录:
其中“价格”或“库存量”字段包含大于25且小于50的值。
DateDiff("yyyy",[出生日期],Date())>30
此条件适用于日期/时间字段,如“出生日期”。
只有某人的出生日期与今天的日期之间相差的年数大于30的记录才会包含在查询结果中。
IsNull
此条件可用于任何类型的字段,以显示字段值为Null的记录。
如您所见,根据条件所应用到的字段的数据类型以及您的具体要求,各个条件之间看上去可能有很大的不同。
某些条件很简单,只使用基本运算符和常量。
而有些条件很复杂,不仅使用函数、特殊运算符,还包含字段引用。
本主题按数据类型列出了多个常用条件。
如果本主题中提供的示例不能满足您的特定需求,则您可能需要自己编写条件。
为此,您必须首先熟悉函数、运算符、特殊字符的完整列表以及用于引用字段和文字的表达式的语法。
有关详细信息可以在请参阅一节列出的文章中找到。
在这里,您将了解在哪里添加条件以及如何添加。
若要向查询添加条件,必须在设计视图中打开查询。
然后标识要为其指定条件的字段。
如果设计网格中尚无该字段,则您必须自行添加,方法是将它从查询设计窗口拖动到字段网格,或者双击该字段(双击字段会自动将它添加到字段网格中的下一个空列)。
最后,在“条件”行中键入条件。
您在“条件”行中为不同字段指定的条件使用AND运算符组合在一起。
换言之,在“城市”和“出生日期”字段中指定的条件将如下方式进行解释:
城市="芝加哥"AND出生日期 1“城市”和“出生日期”字段都包括条件。 2只有“城市”字段的值为“芝加哥”的记录将满足此条件。 3只有至少为40岁的那些人的记录将满足此条件。 4只有同时满足这两个条件的记录将包括在结果中。 如果您只希望满足这两个条件中的一个条件该怎么办呢? 换言之,如果您有二选一条件,该如何输入它们呢? 如果您有二选一条件(即两组独立的条件,只要满足其中一组即可),则可以同时使用设计网格中的“条件”和“或”行。 1“城市”条件是在“条件”行中指定的。 2“出生日期”条件是在“或”行中指定的。 “条件”和“或”行中指定的条件是使用OR运算符组合的,如下所示: 城市="芝加哥"OR出生日期 如果您需要指定更多备选条件,请使用“或”行下面的行。 在继续这些示例之前,请注意下列几点: ∙如果条件是临时的或者经常更改,则可以筛选查询结果,而不是频繁修改查询条件。 筛选器是更改查询结果但不更改查询设计的临时条件。 有关筛选器的详细信息,请参阅文章筛选: 限制视图中的记录数。 ∙如果条件字段不变,但是您感兴趣的值频繁更改,则可以创建参数查询。 参数查询会提示用户提供字段值,然后使用这些值创建查询条件。 有关参数查询的详细信息,请参阅文章在查询和报表中使用参数。 文本、备注和超链接字段的条件 下面的示例针对某个查询中的“国家/地区”字段,该查询基于一个存储联系人信息的表。 条件是在设计网格中该字段的“条件”行中指定的。 为超链接字段指定的条件默认情况下应用于该字段值的显示文本部分。 若要为该值的目标统一资源定位器(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.使用下列方法之一在设计视图中打开该表: o单击该表,然后按Ctrl+Enter o右键单击该表,然后单击“设计视图”。 3.在表设计网格的“数据类型”列中列出了每个字段的数据类型。 多值字段 多值字段中的数据作为行存储在隐藏表中,该表由OfficeAccess2007创建并填充以用于表示该字段。 在查询设计视图中,它是通过使用可展开字段在“字段列表”中表示的。 若要对多值字段使用条件,应为隐藏表中的单个行提供条件。 要执行此操作: 1.创建一个包含多值字段的查询,并在设计视图中打开它。 2.单击多值字段旁边的加号(+)将其展开(如果该字段已经展开,则该符号为减号(-)。 就在该字段的名称下面,您将看到一个代表该多值字段的某一个值的字段。 此字段将与多值字段同名,但后面跟有字符串“.Value”。 3.将多值字段及其单值字段拖至设计网格中单独的列中。 如果想在结果中只看到完整的多值字段,请清除对应单值字段的“显示”复选框。 4.在单值字段的“条件”行中键入您的条件,使用适合于这些值所表示的数据类型的条件。 5.多值字段中的每个值将使用您提供的条件单独求值。 例如,您可能有一个存储了一系列数字的多值字段。 如果提供条件>5AND<3,则任何至少有一个值大于5且一个值小于3的记录都将匹配。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access 查询 条件 示例
![提示](https://static.bdocx.com/images/bang_tan.gif)