建立驗證規則以驗證欄位中的資料

建立驗證規則以驗證欄位中的資料

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

您可以檢查或驗證 Access 桌面資料庫中的資料,當您輸入使用驗證規則。有三種類型的 [在 Access 中的驗證規則:

  • 欄位驗證規則   若要指定必須符合所有有效的欄位值的準則,您可以使用驗證規則。例如,日期欄位可能不允許值在過去的驗證規則。

  • 記錄驗證規則   若要指定有效的所有記錄必須都符合的條件,您可以使用驗證規則。例如,含兩個日期欄位的記錄可能需要一個欄位的值一律會在完成其他欄位的值 (例如 StartDate 是結束日期之前)。

  • 驗證表單   若要指定所有輸入該控制項的值必須符合的準則,您可以使用表單上控制項的驗證規則] 的屬性。驗證規則控制項屬性適用於等欄位驗證規則。

    附註: 本文內容不適用於 Access Web App (此為使用 Access 設計並於線上發佈的資料庫類型)。

本文內容

概觀

驗證規則的類型

您可以在其中使用驗證規則

您可以在 [驗證規則中輸入

新增驗證規則至資料表

建立欄位驗證規則

建立訊息以顯示欄位輸入無效

建立記錄驗證規則

建立訊息以顯示記錄輸入無效

根據新的驗證規則測試現有的資料

新增驗證規則至表單上的控制項

建立控制項的驗證規則

驗證規則參考資料

驗證規則和驗證文字範例

一般驗證規則運算子的語法範例

驗證規則中使用萬用字元

概觀

本文說明如何在資料表欄位和表單控制項使用驗證規則及驗證文字。驗證規則是一種限制資料表欄位或表單控制項 (例如文字方塊) 輸入的方法。驗證文字可讓您提供訊息,協助使用者知道輸入的值是否有效。

輸入資料時,Access 會檢查輸入的資料是否違反驗證規則,如果是的話,就不會接受輸入的資料,同時 Access 會顯示訊息。

Access 提供數種方式來限制輸入:

  • 資料類型   每個資料表的欄位具有限制使用者可以輸入的資料類型。例如 [日期/時間] 欄位可接受的日期和時間,[貨幣] 欄位會接受只貨幣資料,依此類推。

  • 欄位屬性   某些欄位屬性限制資料輸入。例如,欄位的 [欄位大小] 屬性限制輸入限制的資料量。

    您也可以使用 [驗證規則] 屬性,以特定的值,並要通知您任何錯誤的使用者的 [驗證文字] 屬性。例如,例如,輸入規則> 100 和 < 1000年驗證規則中屬性強制使用者輸入 100 和 1000 之間的值。例如,規則[EndDate] > = [StartDate]強制使用者輸入,就會發生的結束日期,或晚開始日期。輸入文字,例如 「 輸入 100 和 1000 之間的值 」 或 「 請輸入結束日期必須等於或晚於開始日期 」驗證文字] 屬性中,對錯誤,以及如何修正錯誤時,就是告訴使用者。

  • 輸入遮罩   您可以使用輸入的遮罩強制使用者輸入值以特定方式,以驗證資料。例如,輸入的遮罩可以強制使用者在歐洲的格式,例如 [2007.04.14 輸入日期。

這些驗證資料的方法可以單獨使用或組合使用。資料類型不是選用的,會提供最基本的資料驗證類型。

如需有關資料類型、 欄位大小和輸入的遮罩的詳細資訊,請參閱資料類型與欄位屬性簡介一文。

驗證規則的類型

您可以建立兩種基本類型的驗證規則:

  • 欄位驗證規則   使用 [欄位驗證規則,來檢查當您離開欄位的欄位中輸入的值。例如,假設您有一個日期欄位,而您輸入> = #01/01/2010年 #該欄位的 [驗證規則] 屬性中。您的規則,現在要求使用者輸入或 2010 年 1 月 1 日之後的日期。如果您輸入的日期早於 2010年,即可將焦點放在另一個欄位,然後嘗試存取可讓您將目前的欄位,直到您修正問題。

  • 記錄驗證規則   使用記錄驗證規則來控制時,您可以儲存的記錄 (列在表格中)。不同於欄位驗證規則,記錄驗證規則參考之相同資料表中的其他欄位。當您需要檢查與另一個值的一個欄位中的值時,您可以建立記錄驗證規則。例如,假設您的業務需要您將產品運送 30 天內,而且如果您不在該時間內傳送,您必須退款購買價格的組件給客戶。您可以定義記錄驗證規則,例如[要求] < = [訂單日期] + 30以確保其他人無法輸入運送太久至未來的日期 (貨日期] 欄位中的值)。

如果驗證規則的語法看起來怪異,請參閱您可以在 [驗證規則中輸入說明語法及範例驗證規則。

可以使用驗證規則的位置

您可以針對資料表欄位及表單控制項定義驗證規則。您定義資料表規則時,那些規則會在您匯入資料時套用。若要新增驗證規則至資料表,您需要開啟資料表,然後使用功能區 [欄位] 索引標籤上的命令。若要新增驗證規則至表單,可以在 [版面配置檢視] 中開啟表單,然後將規則新增至個別控制項的屬性。

新增驗證規則至資料表] 區段中的步驟說明如何新增驗證規則至資料表欄位。稍後在本文中新增驗證規則至表單上的控制項,一節的步驟說明如何在個別的控制項屬性新增規則。

可以在驗證規則中輸入的內容

驗證規則可以包含的運算式,傳回單一值的函數。您可以使用運算式來執行計算、 操作字元,或測試的資料。驗證規則運算式會測試資料。例如,運算式可以檢查的一系列的值,例如「 東京 」 或者 「 莫斯科 」 或者"巴黎"或者"赫爾辛基 」。運算式也可以執行數學運算。例如,運算式< 100強制使用者輸入小於 100 的值。運算式([訂單日期]-[出貨日期])計算訂單和其商品銷售並運送之間的天數。

如需有關運算式的詳細資訊,請參閱建立運算式一文

頁面頂端

新增驗證規則至資料表

您可以新增欄位驗證規則及/或記錄驗證規則。欄位驗證規則會檢查欄位中輸入的資料,並在焦點離開欄位時套用規則。記錄驗證規則會檢查一或多個欄位的資料輸入,並在焦點離開欄位時套用規則。通常,記錄驗證規則會比較二或多個欄位的值。

附註: 下列欄位類型不支援驗證規則:

  • 自動編號

  • OLE 物件

  • 附件

  • 複製編號

建立欄位驗證規則

  1. 選取要驗證的欄位。

  2. [欄位] 索引標籤上,按一下 [欄位驗證] 群組中的 [驗證],然後按一下 [欄位驗證規則]

  3. 使用運算式建立器建立規則。如需有關如何使用運算式建立器的詳細資訊,請參閱使用 [運算式建立器

建立訊息以顯示欄位輸入無效

  1. 請選取需要訊息通知輸入無效的欄位。欄位應該都已經有驗證規則。

  2. [欄位] 索引標籤上,按一下 [欄位驗證] 群組中的 [驗證],然後按一下 [欄位驗證規則]

  3. 輸入適當的訊息。例如,如果驗證規則是> 10,有可能 」 輸入值,這是小於 10。 」 訊息。

如需欄位驗證規則和訊息的一些範例,請參閱驗證規則參考資料] 區段。

建立記錄驗證規則

  1. 開啟要驗證記錄的資料表。

  2. [欄位] 索引標籤上,按一下 [欄位驗證] 群組中的 [驗證],然後按一下 [記錄驗證規則]

  3. 使用運算式建立器建立規則。如需有關如何使用運算式建立器的詳細資訊,請參閱使用 [運算式建立器

建立訊息以顯示記錄輸入無效

  1. 請開啟需要訊息通知輸入無效的資料表。資料表應該都已經有記錄驗證規則。

  2. [欄位] 索引標籤上,按一下 [欄位驗證] 群組中的 [驗證],然後按一下 [記錄驗證訊息]

  3. 輸入適當的訊息。例如,如果驗證規則是[StartDate] < [EndDate]郵件可能會 」 StartDate 必須之前結束日期 」。

頁面頂端

根據新的驗證規則測試現有的資料

如果您新增驗證規則至現有的資料表,您可能會想要測試規則,以檢查現有的資料是否有效。

附註: 下列程序只適用於桌面資料庫的資料表。

  1. 在 [設計檢視] 中開啟您要測試的資料表。

    [設計] 索引標籤上的 [工具] 群組中,按一下 [測試驗證規則]

  2. 按一下 [是],關閉通知訊息並開始測試。

  3. 如果提示您儲存資料表,請按一下 [是]

  4. 您繼續進行時,可能會看到多種其他的通知訊息。請閱讀各訊息中的指示,然後視情況按一下 [是][否],以完成或停止測試。

頁面頂端

新增驗證規則至表單上的控制項

驗證輸入該控制項的資料,並協助使用者輸入不是有效的資料,您可以使用 [驗證規則] 屬性和表單控制項的驗證文字屬性。

提示:  如果您要使用功能區上的其中一個 [表單] 命令,從資料表自動建立表單,基礎資料表中欄位的任何驗證都會由表單上對應的控制項繼承。

控制項的驗證規則可以異於其所繫結之資料表欄位的驗證規則。如果您要讓表單比資料表更具限制性,這會非常有用。套用表單規則後,會套用資料表規則。如果資料表比表單更具限制性,為資料表欄位定義的規則會優先。如果規則互斥,這些規則會使您無法輸入任何資料。

例如,假設您套用下列規則至資料表的日期欄位:

< #01/01/2010年 #

但接著您將此規則套用到繫結至日期欄位的表單控制項:

> = #01/01/2010年 #

日期欄位現在要求早於 2010 年的值,但表單控制項要求 2010 年或該年後的日期,因此導致您無法輸入任何資料。

建立控制項的驗證規則

  1. 以滑鼠右鍵按一下要變更的表單,然後按一下 [版面配置檢視]

  2. 以滑鼠右鍵按一下要變更的控制項,然後按一下 [屬性],開啟控制項的屬性表。

  3. 按一下 [全部] 索引標籤,然後在 [驗證規則] 屬性方塊中輸入驗證規則。

    提示:  按一下 [建立] 按鈕啟動 [運算式建立器]。

    如需有關如何使用運算式建立器的詳細資訊,請參閱使用 [運算式建立器

  4. [驗證文字] 屬性方塊中輸入訊息。

頁面頂端

驗證規則參考資料

驗證規則使用 Access 運算式語法。如需運算式的詳細資訊,請參閱簡介運算式

驗證規則和驗證文字範例

驗證規則

驗證文字

<>0

輸入非零的值。

>=0

值必須是零或更大的值。

-or-

您必須輸入正值。

0 or >100

值必須為 0 或大於 100。

BETWEEN 0 AND 1

輸入具有百分比符號的值。(用於將數值儲存為百分比的欄位)。

<#01/01/2007#

輸入 2007 年之前的日期。

>=#01/01/2007# AND <#01/01/2008#

日期必須在 2007 年內。

<Date()

出生日期不能是未來的日期。

StrComp(UCase([姓氏]),
[姓氏],0) = 0

在名為 [姓氏] 欄位中的資料必須使用大寫。

>=Int(Now())

輸入今天的日期。

M Or F

輸入 M 代表男性,F 代表女性。

LIKE "[A-Z]*@[A-Z].com" OR "[A-Z]*@[A-Z].net" OR "[A-Z]*@[A-Z].org"

輸入有效的 .com、.net 或 .org 電子郵件地址。

[要貨日期]<=[訂單日期]+30

輸入的要貨日期不能晚於訂單日期後的 30 日。

[結束日期]>=[開始日期]

輸入的結束日期必須等於或晚於開始日期。

一般範例驗證規則運算子的語法範例

運算子

函數

範例

NOT

測試相反值。用在 IS NOT NULL 以外的任何比較運算子之前。

NOT > 10 (等於 <=10)。

IN

測試等於清單中現有成員的值。比較值必須是以括弧括住並用逗號分隔的清單。

IN ("東京","巴黎","莫斯科")

BETWEEN

測試值範圍。您必須使用低與高兩個比較值,且必須以 AND 分隔符號區隔那些值。  

BETWEEN 100 AND 1000 (等於 >=100 AND <=1000)

LIKE

符合 [文字] 和 [備忘] 欄位中的圖樣字串。

LIKE "Geo*"

IS NOT NULL

強制使用者在欄位中輸入值。這與將 [必須有資料] 欄位屬性設為 [是] 是一樣的。不過,當您啟用 [必須有資料] 屬性而使用者未輸入值時,Access 會顯示不太友善的錯誤訊息。一般而言,如果您使用 IS NOT NULL 且在 [驗證文字] 屬性中輸入友善的訊息,資料庫會更容易使用。

IS NOT NULL

AND

指定驗證規則的所有部份必須為真。

>= #01/01/2007# AND <=#03/06/2008#

附註: 您也可以使用 AND 來結合驗證規則。例如:NOT "UK" AND LIKE "U*"

OR

指定驗證規則的部分必須為真。

一月 OR 二月

<

小於。

<=

小於或等於。

>

大於。

>=

大於或等於。

=

等於。

<>

不等於。

在驗證規則中使用萬用字元

您可以在驗證規則中使用萬用字元。請記住,Access 支援兩組萬用字元:ANSI-89 與 ANSI-92。這些標準各自使用不同的萬用字元組。

根據預設,所有.accdb 和.mdb 檔案會都使用 ansi-89 標準。

您可以使用下列步驟,將資料庫的 ANSI 標準變更為 ASNI-92:

  1. 按一下 [檔案] 索引標籤上的 [選項]

  2. 按一下 [Access 選項] 對話方塊中的 [物件設計師]

  3. [查詢設計] 區段的 [與 SQL Server 相容語法 (ANSI-92)] 下,選取 [此資料庫]

如需有關如何使用 SQL 萬用字元和 ANSI 標準的詳細資訊,請參閱Access 萬用字元參照

頁面頂端

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×