Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

查詢準則可協助您將注意力集中於 Access 資料庫中的特定項目。 如果項目符合您輸入的所有準則,則會顯示於查詢結果中。

若要將準則新增至 Access 查詢,請在 [設計檢視] 中開啟查詢,並識別您要指定準則的欄位 (欄)。 如果欄位不在設計格線中,請按兩下欄位以將其新增至設計格線,然後在該欄位的 [準則] 列中輸入準則。 如果您不確定該如何進行,請參閱查詢簡介

查詢準則是一個運算式,Access 會將其與查詢欄位值做比較,以決定是否要加入包含每個值的記錄。 例如,= "Chicago" 是一個運算式,Access 可將其與查詢的文字欄位中的值做比較。 如果指定記錄中該欄位的值為 "Chicago",Access 會在查詢結果中包括記錄。

您可以使用下列常用準則範例,做為建立準則的起點。 這些範例都是依資料類型分組。

本主題內容

查詢準則簡介

準則與公式相似,它是可能包含欄位參照、運算子及常數的字串。 查詢準則在 Access 中也稱為運算式。

下表顯示部分範例準則,並說明其運作方式。

準則

描述

>25 and <50

這個準則適用於 [數字] 欄位,例如 [Price] 或 [UnitsInStock]。 它只包含其 [Price] 或 [UnitsInStock] 欄位值大於 25 並小於 50 的記錄。

DateDiff ("yyyy", [BirthDate], Date()) > 30

這個準則適用於 [日期/時間] 欄位,例如 [BirthDate]。 查詢結果只會包含人員的生日與今天日期之間的年數大於 30 的記錄。

Is Null

這個準則可以套用至任何類型的欄位,以顯示欄位值為 Null 的記錄。

如您所見,準則彼此看起來可能極為不同,視其套用之欄位的資料類型和您的特定需求而定。 某些準則很簡單,並使用基本運算子和常數。 其他準則則很複雜,並使用函數、特殊運算子,且包含欄位參照。

本主題依資料類型列出數個常用的準則。 如果本主題的範例並未符合您的特殊需求,您可能需要撰寫您自己的準則。 若要這麼做,您必須先熟悉函數、運算子、特殊字元,以及參照欄位和常值之運算式語法的完整清單。

在這裡,您會找到新增準則的位置和方式。 若要將準則新增至查詢,您必須在 [設計檢視] 中開啟查詢。 然後就可以識別您要為其指定準則的欄位。 如果欄位尚未在設計格線中,您可以藉由將欄位從查詢設計視窗拖曳至欄位格線,或按兩下欄位的方式來新增欄位 (按兩下欄位會自動將它新增至欄位格線中的下一個空白資料行)。 最後,在 [準則] 資料列中輸入準則

您在 [準則] 資料列中為不同的欄位指定的準則會使用 AND 運算子加以合併。 換句話說,[City] 和 [BirthDate] 欄位中指定的準則會解譯成類似於:

City = "Chicago" AND BirthDate < DateAdd (" yyyy ", -40, Date())

縣/市及生日的準則

1. [City] 和 [BirthDate] 欄位包含準則。

2. 只有 [City] 欄位值為 Chicago 的記錄才會滿足此準則。

3. 只有年齡至少為 40 歲之人的記錄才會滿足此準則。

4. 只有符合上述兩個準則的記錄才會包含在結果中。

如果您只想要符合其中一項條件,該怎麼辦? 換句話說,如果有替代準則,該如何輸入?

如果有替代準則,或足以滿足一個集合的兩組獨立準則,您可以在設計格線中使用 [準則] 和 [or] 資料列。

替代準則

1. [City] 準則是在 [準則] 資料列中指定。

2. [BirthDate] 準則是在 [or] 資料列中指定。

[準則] 和 [or] 資料列中指定的準則會使用 OR 運算子加以合併,如下所示:

縣/市 = "台北" OR 生日 < DateAdd (" yyyy ", -40, Date())

如果需要指定其他的替代項目,請使用 [or] 資料列下方的列。

繼續閱讀範例之前,請注意下列事項:

  • 如果準則是暫時的或經常變更,您可以篩選查詢結果,而非經常修改查詢準則。 篩選是會變更查詢結果的暫時準則,不需要改變查詢的設計。 如需有關篩選的詳細資訊,請參閱套用篩選以檢視 Access 資料庫中精選之記錄一文。

  • 如果準則欄位不變,但您要使用的值卻經常在變,您可建立參數查詢。 參數查詢會提示使用者輸入欄位值,然後使用這些值來建立查詢準則。 如需有關參數查詢的詳細資訊,請參閱在查詢和報表中使用參數一文。

適用於文字、備忘和超連結欄位的準則

附註: 自 Access 2013 起,[文字] 欄位已命名為 [簡短文字],而 [備忘] 欄位已命名為 [長文字] 。

下列範例用於示範以儲存連絡人資訊的資料表為基礎之查詢中的 [CountryRegion] 欄位。 準則是在設計格線中欄位的 [準則] 資料列中指定。

CountryRegion 準則

依預設,您為 [超連結] 欄位指定的準則會套用至欄位值的顯示文字部分。 若要為值的目的地統一資源定位器 (URL) 部分指定準則,請使用 HyperlinkPart 運算式。 這個運算式的語法如下:HyperlinkPart([Table1].[Field1],1) = "http://www.microsoft.com/",其中 Table1 是含有超連結欄位的資料表名稱,Field 1 是超連結欄位,而 http://www.microsoft.com 是您想要比對的 URL。

若要包含滿足下列條件的記錄...

使用這個準則

查詢 結果

與某值 (例如 China (中國)) 完全相符

"China"

傳回 [CountryRegion] 欄位設為 [China] 的記錄。

不符合某個值 (例如 Mexico (墨西哥))

Not "Mexico"

傳回 [CountryRegion] 欄位設為非 Mexico (墨西哥) 之國家/地區的記錄。

開頭為指定的字串,例如 U

Like U*

針對名稱以 "U" 開頭的所有國家/地區 (如 UK (英國)、USA (美國) 等等) 傳回記錄。

附註: 運算式中使用的星號 (*) 代表任意字元字串,這種字元亦稱為萬用字元。 如需此類字元的清單,請參閱 Access 萬用字元參照一文。

開頭不是指定的字串,例如 U

Not Like U*

為名稱開頭不是 "U" 字元的所有國家/地區傳回記錄。

包含指定字串,例如 Korea (韓國)

Like "*Korea*"

傳回含有 "Korea" 字串的所有國家/地區的記錄。

不含指定字串,例如 Korea

Not Like "*Korea*"

傳回不含 "Korea" 字串的所有國家/地區的記錄。

結尾是指定的字串,例如 "ina"

Like "*ina"

針對名稱結尾是 "ina" (如 China (中國) 和 Argentina (阿根廷)) 的所有國家/地區傳回記錄。

結尾不是指定的字串,例如 "ina"

Not Like "*ina"

針對名稱結尾不是 "ina" (如 China (中國) 和 Argentina (阿根廷)) 的所有國家/地區傳回記錄。

包含 Null 值 (或缺少值)

Is Null

傳回欄位中沒有值的記錄。

不包含 Null 值

Is Not Null

傳回欄位中未缺少值的記錄。

包含零長度字串

"" (一對雙引號)

傳回欄位設定為空白值 (但非 Null) 的記錄。 例如,在其他部門的銷售記錄中,[CountryRegion] 欄位可能包含空白值。

不包含零長度字串

非 ""

傳回 [CountryRegion] 欄位有一個非空白值的記錄。

包含 Null 值或零長度字串

"" Or Is Null

傳回欄位中沒有值,或將欄位設為空白值的記錄。

為空值或空白值

Is Not Null And Not ""

傳回 [CountryRegion] 欄位有非空白、非 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 (智利)) 之項目的記錄。

附註: 在運算式中使用 ?_ 字元時,代表單一字元,這些字元也稱為萬用字元。 _ 字元無法用於包含了 ? 字元的同一個運算式中,也無法用於包含了 * 萬用字元的運算式中。 您可以在另外包含 % 萬用字元的運算式中使用 _ 萬用字元。

適用於數值、貨幣和自動編號欄位的準則

下列範例用於示範以儲存產品資訊的資料表為基礎之查詢中的 [UnitPrice] 欄位。 準則是在查詢設計格線中欄位的 [準則] 資料列中指定。

UnitPrice 準則

若要包含滿足下列條件的記錄...

使用這個 準則

查詢結果

與某個值 (例如 100) 完全符合

100

傳回產品單價為 $100 的記錄。

不符合某個值,例如 1000

Not 1000

傳回產品單價不是 $1000 的記錄。

包含的值小於某值 (例如 100)

< 100
<= 100

傳回單價低於 $100 (<100) 的記錄。 第二個運算式 (<=100) 會顯示單價小於或等於 $100 的記錄。

包含的值大於某值 (例如 99.99)

>99.99
>=99.99

傳回單價大於 $99.99 (>99.99) 的記錄。 第二個運算式會顯示單價大於或等於 $99.99 的記錄。

包含兩個值 (例如 20 和 25) 的其中一個

20 or 25

傳回單價是 $20 或 $25 的記錄。

包含落於某範圍內的值

>49.99 and <99.99
-或-
Between 50 and 100

傳回單價介於 (不含) $49.99 和 $99.99 之間的記錄。

包含落於某範圍之外的值

<50 or >100

傳回單價不介於 $50 和 $100 之間的記錄。

包含多個特定值中的一個

In(20, 25, 30)

傳回單價是 $20、$25 或 $30 的記錄。

包含以指定數值結尾的值

Like "*4.99"

傳回單價以 "4.99" (例如 $4.99、$14.99、$24.99 等) 結尾的記錄。

附註: 在運算式中使用 *% 字元時,代表任何數目的字元,這些字元也稱為萬用字元。 % 字元無法用於包含了 * 字元的同一個運算式中,也無法用於包含了 ? 萬用字元的運算式中。 您可以在另外包含 _ 萬用字元的運算式中使用 % 萬用字元。

包含 Null 值 (或缺少值)

Is Null

傳回 [UnitPrice] 欄位中未輸入值的記錄。

包含非 Null 值

Is Not Null

傳回 [UnitPrice] 欄位中未缺少值的記錄。

適用於日期/時間欄位的準則

下列範例用於示範以儲存訂單資訊的資料表為基礎之查詢中的 [OrderDate] 欄位。 準則是在查詢設計格線中欄位的 [準則] 資料列中指定。

OrderDate 準則

若要包含滿足下列條件的記錄...

使用這個準則

查詢結果

與某個值完全符合,例如 2/2/2006

#2/2/2006#

傳回 2006 年 2 月 2 日發生交易的記錄。 請記得以 # 字元括住日期值,讓 Access 可以區別日期值與文字字串。

不符合某個值,例如 2/2/2006

Not #2/2/2006#

傳回 2006 年 2 月 2 日以外的某天發生交易的記錄。

包含特定日期之前的值,例如 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", [SalesDate]) = 12

傳回任一年 12 月發生交易的記錄。

包含落在特定季度中的日期 (不論年份),例如第一季

DatePart("q", [SalesDate]) = 1

傳回任一年第一季發生交易的記錄。

包含今天的日期

Date()

傳回目前日期發生交易的記錄。 如果今天的日期是 2/2/2006,會顯示 [OrderDate] 欄位設為 [Feb 2, 2006] 的記錄。

包含昨天的日期

Date()-1

傳回目前日期的前一天發生交易的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 2 月 1 日的記錄。

包含明天的日期

Date() + 1

傳回目前日期的後一天發生交易的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 2 月 3 日的記錄。

包含落在本週的日期

DatePart("ww", [SalesDate]) = DatePart("ww", Date()) and Year( [SalesDate]) = Year(Date())

傳回本週發生交易的記錄。 一週從星期日開始,並在星期六結束。

包含落在上週的日期

Year([SalesDate])* 53 + DatePart("ww", [SalesDate]) = Year(Date())* 53 + DatePart("ww", Date()) - 1

傳回上週發生交易的記錄。 一週從星期日開始,並在星期六結束。

包含落在下週的日期

Year([SalesDate])* 53+DatePart("ww", [SalesDate]) = Year(Date())* 53+DatePart("ww", Date()) + 1

傳回下週將發生交易的記錄。 一週從星期日開始,並在星期六結束。

包含落在前 7 天內的日期

Between Date() and Date()-6

傳回前 7 天發生交易的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 1 月 24 日到 2006 年 2 月 2 日之間的記錄。

包含屬於本月的日期

Year([SalesDate]) = Year(Now()) And Month([SalesDate]) = Month(Now())

傳回本月的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 2 月的記錄。

包含屬於上個月的日期

Year([SalesDate])* 12 + DatePart("m", [SalesDate]) = Year(Date())* 12 + DatePart("m", Date()) - 1

傳回上個月的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 1 月的記錄。

包含屬於下個月的日期

Year([SalesDate])* 12 + DatePart("m", [SalesDate]) = Year(Date())* 12 + DatePart("m", Date()) + 1

傳回下個月的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 3 月的記錄。

包含落在前 30 或 31 天內的日期

Between Date( ) And DateAdd("M", -1, Date( ))

一個月內的銷售記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 1 月 2 日 到 2006 年 2 月 2 日之間的記錄。

包含屬於本季的日期

Year([SalesDate]) = Year(Now()) And DatePart("q", Date()) = DatePart("q", Now())

傳回目前這一季的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年第一季的記錄。

包含屬於上一季的日期

Year([SalesDate])*4+DatePart("q",[SalesDate]) = Year(Date())*4+DatePart("q",Date())- 1

傳回上一季的記錄。 如果今天的日期是 2/2/2006,會顯示 2005 年最後一季的記錄。

包含屬於下一季的日期

Year([SalesDate])*4+DatePart("q",[SalesDate]) = Year(Date())*4+DatePart("q",Date())+1

傳回下一季的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年第二季的記錄。

包含落在今年的日期

Year([SalesDate]) = Year(Date())

傳回今年的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年的記錄。

包含屬於前一年的日期

Year([SalesDate]) = Year(Date()) - 1

傳回去年發生交易的記錄。 如果今天的日期是 2/2/2006,會顯示 2005 年的記錄。

包含屬於明年的日期

Year([SalesDate]) = Year(Date()) + 1

傳回明年日期發生交易的記錄。 如果今天的日期是 2/2/2006,會顯示 2007 年的記錄。

包含落在 1 月 1 日到今天之間的日期 (即年初至今的記錄)

Year([SalesDate]) = Year(Date()) and Month([SalesDate]) <= Month(Date()) and Day([SalesDate]) <= Day (Date())

傳回落在今年 1 月 1 日到今天之間發生交易的記錄。 如果今天的日期是 2/2/2006,會顯示 2006 年 1 月 1 日到 2006 年 2 月 2 日之間的記錄。

包含過去的日期

< Date()

傳回今天之前發生交易的記錄。

包含未來發生的日期

> Date()

傳回今日之後將發生交易的記錄。

篩選出 Null 值 (即缺少值)

Is Null

傳回缺少交易日期的記錄。

篩選出非 Null 值

Is Not Null

傳回已知交易日期的記錄。

適用於是/否欄位的準則

舉例來說,[客戶] 資料表有一個名為 [使用中] 的 [是/否] 欄位,用來表示客戶帳戶目前是否為使用中。 下表顯示如何評估在 [是/否] 欄位的 [準則] 資料列中所輸入的值。

欄位值

結果

是、True、1 或 -1

針對 [是] 值進行測試。 當您輸入值 1 或 -1 之後,在 [準則] 資料列中會轉換為 [True]。

否、False 或 0

針對 [否] 值進行測試。 當您輸入值 1 之後,會在 [準則] 資料列中轉換為 [否]。

沒有值 (null)

未測試

1、-1 或 0 以外的任何數字

如果這是欄位中唯一的準則值,則沒有結果

[是]、[否]、[True] 或 [False] 以外的任何字元字串

資料類型不相符的錯誤導致查詢無法執行

適用於其他欄位的準則

附件    在 [準則] 列中輸入 Is Null,加入不含任何附件的記錄。 輸入 Is Not Null,加入包含附件的記錄。

查閱欄位    查閱欄位有兩種類型:一種是用於查閱位於現有資料來源中的值 (藉由使用外部索引鍵),另一種是根據查閱欄位建立時所指定之值的清單。

根據指定值清單的查閱欄位屬於「文字」資料類型,且有效準則與其他文字欄位相同。

您在以來自現有資料來源的值為基礎的查閱欄位中可使用的準則,取決於外部索引鍵的資料類型,而非正在查閱之資料的資料類型。 例如,您可能有顯示員工名稱的查閱欄位,卻是使用 [數字] 資料類型的外部索引鍵。 因為欄位儲存的是數字而不是文字,所以您會使用適用於數字的準則;也就是 >2

如果您不知道外部索引鍵的資料類型,可以在 [設計檢視] 中檢查來源資料表來判定欄位的資料類型。 步驟如下:

  1. 在 [瀏覽窗格] 中找出來源資料表。

  2. 以下列任一方式,在 [設計檢視] 中開啟資料表:

    • 按一下資料表,然後按 CTRL+ENTER

    • 以滑鼠右鍵按一下資料表,然後按一下 [設計檢視]。

  3. 每個欄位的資料類型會列在資料表設計格線的 [資料類型] 資料行中。

多重值欄位    多重值欄位中的資料會以資料列的形式儲存在 Access 建立及填入的隱藏資料表中,以代表欄位。 在查詢的 [設計檢視] 中,它是利用可展開的欄位在 [欄位清單] 中表示。 若要使用多重值欄位的準則,請為隱藏資料表的單一資料列提供準則。 方法如下:

  1. 建立含有多重值欄位的查詢,並在 [設計檢視] 中開啟它。

  2. 按一下多重值欄位旁邊的加號 (+) 來展開它;如果欄位已展開,則為減號 (-)。 就在欄位名稱下方,您會看到代表多重值欄位之單一值的欄位。 此欄位會與多重值欄位具有相同的名稱,但附加字串 .Value

  3. 拖曳多重值欄位及其單一值欄位,以區隔設計格線中的資料行。 如果只想在結果中看到完整的多重值欄位,請清除單一值欄位的 [顯示] 核取方塊。

  4. 在單一值欄位的 [準則] 資料列中輸入準則,使用適用於值所表示之任何資料類型的準則。

  5. 系統隨即會使用您提供的準則,個別評估多重值欄位中的每個值。 例如,您可能有儲存數字清單的多重值欄位。 如果您提供準則 >5 AND <3,那麼至少有一個值大於 5 一個值小於 3 的任何記錄皆符合該準則。

另請參閱

查詢簡介

建立簡單的選取查詢

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Office Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×