建立、編輯或刪除關聯性

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

關聯可協助您將兩個不同資料表的資料合併在一起。關聯是由兩個資料表中的欄位構成,其資料會相互對應。例如,您的 [產品] 資料表和 [訂單詳細資料] 資料表中可能都有一個 [產品識別碼] 欄位。[訂單詳細資料] 資料表中的每筆記錄都有一個產品識別碼,與 [產品] 資料表中相同產品識別碼之記錄相對應。

當您使用查詢中的關聯資料表時,關聯可讓 Access 判斷該將資料表中的哪些記錄合併於結果集中。關聯也可以防止已刪除的資料不同步,而有助於防止遺失資料。

本文提供建立、編輯及刪除關聯的逐步程序。另外也將說明如何執行強迫參考完整性以避免造成記錄的孤立、如何設定連接類型以判斷查詢結果中要包含各端關聯的哪些記錄,以及如何設定串聯選項使參考保持同步狀態。

本文內容

概觀

使用資料庫關聯圖視窗建立資料表關聯性

使用欄位清單窗格新增欄位以建立資料表關聯

在 Web 資料庫中建立或修改關聯

編輯關聯

強迫參考完整性

刪除資料表關聯

概觀

在一般 Access 資料庫中,您可以使用下列其中一種方法來建立資料表關聯:

  • 在 [資料庫關聯圖] 視窗中,新增要建立關聯的資料表,然後拖曳欄位,使資料表的欄位與另一個資料表的欄位產生關聯。

  • [欄位清單] 窗格中拖曳一個欄位到資料表資料工作表。

當您建立資料表的關聯時,共同欄位的名稱不一定要相同,雖然情況常是如此。共同欄位必須有相同的資料類型。但是,如果主索引鍵欄位是 [自動編號] 欄位,則只要這兩個欄位的 [欄位大小] 屬性相同,外部索引鍵欄位也可以是 [數字] 欄位。例如,如果 [自動編號] 欄位與 [數字] 欄位的 [欄位大小] 屬性都是 [長整數],則這兩個欄位就可以相互對應。當兩個共同欄位都是 [數字] 欄位時,雙方的 [欄位大小] 屬性設定必須相同。

Web 資料庫關聯

重要: 在 Web 資料庫中無法使用 [資料庫關聯圖] 視窗。

在 Web 資料庫中,您可以使用查閱與關聯精靈建立關聯。先在其中一個資料表中新增一個欄位,然後再透過在現有資料表中查閱的方式來取得此新欄位的值。

若要在 Web 資料庫中變更關聯,請選擇關聯欄位,然後再次執行 [查閱精靈] 以修改關聯。

頁面頂端​

使用資料庫關聯圖視窗建立資料表關聯

  1. [資料庫工具] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [資料庫關聯圖]

  2. 如果您尚未定義任何關聯,則 [顯示資料表] 對話方塊即會自動出現。若未出現,請在 [設計] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [顯示資料表]

    [顯示資料表] 對話方塊會顯示資料庫中的所有資料表和查詢。若只要查看資料表,請按一下 [資料表]。若只要查看查詢,請按一下 [查詢]。若要查看兩者,請按一下 [兩者都要]。

  3. 選取一個或多個資料表或查詢,然後按一下 [新增]。將資料表和查詢新增至 [關聯] 文件索引標籤完成之後,請按一下 [關閉]

  4. 從一個資料表中拖曳某個欄位 (通常是主索引鍵) 至另一個資料表中的共同欄位 (外部索引鍵)。若要拖曳多個欄位,請按住 CTRL 鍵,然後按一下每個欄位,再加以拖曳。

    隨即出現 [編輯關聯] 對話方塊。

    [編輯關聯] 對話方塊

  5. 請確認所顯示的欄位名稱是關聯的共同欄位。 如果欄位名稱不正確,請在欄位名稱上按一下,然後從清單中選取適當的欄位。

    若要強迫此關聯的參考完整性,請選取 [強迫參考完整性] 核取方塊。如需參考完整性的詳細資訊,請參閱強迫參考完整性一節。

  6. 按一下 [建立]。

    Access 會在兩個資料表之間畫上一條關聯線。 如果您選取了 [強迫參考完整性] 核取方塊,則線條的兩端會比較粗。 此外,唯有當您選取了 [強迫參考完整性] 核取方塊時,數字 1 才會出現在關聯線一端的較粗部分上,而無限符號 () 則會出現在關聯線另一端較粗的部分上,如下圖所示。

從一個資料表中拖曳欄位至另一個資料表中的相符欄位

附註: 

  • 若要建立一對一關聯。   兩個常見的欄位 (通常是主索引鍵和外部索引鍵欄位) 必須擁有唯一索引。這表示,應該這些欄位的 [索引] 屬性設定為[是 (不可重複)。如果這兩個欄位都有唯一的索引,Access 會建立一對一關聯。

  • 若要建立一個對多關聯   「 一 」 端 (通常是主索引鍵) 關聯性的欄位必須擁有唯一索引。這表示,應該這個欄位的 [索引] 屬性設定為[是 (不可重複)。在多端的欄位應該具有唯一索引。它可以索引,但是它必須允許重複項目。這表示此欄位的 [索引] 屬性,應該設為 [] 或 [是 (可重複)。當一個欄位具有唯一的索引,而其他並不會時 Access 會建立一個對多關聯。

頁面頂端​

使用欄位清單窗格新增欄位以建立資料表關聯

您可以從 [欄位清單] 窗格中拖曳欄位,藉此將欄位新增至 [資料工作表檢視] 中所開啟的現有資料表。[欄位清單] 窗格會顯示在資料庫內關聯資料表中可用的欄位,也會顯示其他資料表中可用的欄位。

如果從「其他」(無關聯的) 資料表拖曳欄位,然後完成 [查閱精靈] 作業,在 [欄位清單] 窗格中的資料表與放置所拖曳欄位的資料表之間,就會自動建立新的一對多關聯。依預設,這種由 Access 建立的關聯不會執行強迫參考完整性。若要執行強迫參考完整性,您必須編輯關聯。如需詳細資訊,請參閱編輯資料表關聯一節。

在資料工作表檢視中開啟資料表

  • 按兩下 [功能窗格] 中的資料表。

開啟欄位清單窗格

  • 按 ALT+F8。[欄位清單] 窗格即會出現。

    欄位清單窗格

[欄位清單] 窗格中會顯示資料庫中的所有其他資料表,並按類別群組顯示。 當您在 [資料工作表檢視] 中使用資料表時,Access 會在 [欄位清單] 窗格中,以下列兩種類別之一顯示欄位: [在關聯資料表中可用的欄位] 和 [在其他資料表中可用的欄位]。 第一個類別會列出與目前使用中資料表有關聯的所有資料表。 第二個類別則會列出與使用中資料表無任何關聯的所有資料表。

如果按一下 [欄位清單] 窗格中資料表名稱旁邊的加號 (+),您就會看到此資料表中的所有可用欄位。若要新增欄位至資料表,請將所需欄位從 [欄位清單] 窗格拖曳至 [資料工作表檢視] 中的資料表。

從欄位清單窗格新增欄位並建立關聯性

  1. 於 [資料工作表檢視] 中開啟資料表時,按下 ALT+F8。[欄位清單] 窗格即會出現。

  2. 在 [在其他資料表中可用的欄位] 底下,按一下資料表名稱旁邊的加號 (+),即可顯示該資料表的欄位清單。

  3. 從 [欄位清單] 窗格中拖曳您要的欄位至 [資料工作表檢視] 中所開啟的資料表

  4. 當插入線出現時,將欄位放到適當的位置。

    [查閱精靈] 隨即啟動。

  5. 依照指示完成 [查閱精靈]

    欄位會出現在 [資料工作表檢視] 中的資料表內。

如果從「其他」(不相關的) 資料表拖曳欄位,然後完成 [查閱精靈] 作業,在 [欄位清單] 窗格中的資料表與放置所拖曳欄位的資料表之間,就會自動建立新的一對多關聯。此關聯會由 Access 建立,根據預設不會強迫參考完整性。若要強迫參考完整性,就必須編輯關聯性。如需詳細資訊,請參閱編輯資料表關聯性一節。

頁面頂端​

在 Web 資料庫中建立或修改關聯

若要在 Web 資料庫中建立關聯,您必須使用 [查閱精靈]。在 Web 資料庫中無法使用資料庫關聯圖視窗。您可以將一個資料表中的欄位作為另一個資料表中關聯欄位的值來源。

附註: 使用 [查閱精靈] 前必須先確定作為值來源的欄位已經存在。

使用查閱精靈建立關聯

  1. 開啟需要從其他資料表取得值的資料表。

  2. 按一下最後一個欄位右方的 [按一下以新增],然後再按一下 [查閱與關聯]

    您可能需要水平捲動畫面才能看見 [按一下以新增]

  3. 在 [查閱精靈] 的第一個畫面中,選取 [我希望查閱欄位從另一個資料表或查詢取得值],然後按 [下一步]

  4. 選取含有來源值的資料表,然後按一下 [下一步]

  5. [可用的欄位] 方塊中,按兩下含有來源值的欄位,然後按一下 [下一步]

  6. 或者,您也可以為查閱欄位指定排序順序。按 [下一步]

  7. 或者,您也可以調整查閱欄位的寬度,這在值過長時特別方便。按 [下一步]

  8. 輸入新欄位的名稱。若要確保兩個資料表中的值永遠相符,請選取 [啟用資料完整性] 核取方塊,然後按一下下列其中一項:

    • [串聯刪除] – 此選項表示若您從一個資料表刪除記錄,則另一個資料表中的相應記錄也會遭到刪除。

    • [限制刪除] – 此選項表示若您嘗試從一個資料表刪除記錄,但另一個資料表中有相應記錄時,則此刪除作業會遭到禁止。

      附註:  當您使用 [查閱精靈] 建立關聯時,請勿選取精靈中的 [允許多重值]

在 Web 資料庫中修改關聯

  1. 開啟從其他資料表取得值的資料表。

  2. 選取從其他資料表取得值的欄位。

  3. [欄位] 索引標籤上,按一下 [內容] 群組中的 [修改查閱]

  4. 依照精靈指示的步驟,執行所要變更。您可以變更下列項目:

    • 作為值來源的欄位

    • 值的排序順序

    • 欄位的寬度,以及是否隱藏索引鍵資料行

    • 查閱欄位的標籤

    • 是否啟用資料完整性

    • 若啟用資料完整性,則要選擇串聯刪除還是限制刪除

頁面頂端​

編輯關聯

在 [資料庫關聯圖] 視窗中選取關聯然後加以編輯,即可變更關聯。

  1. 仔細地將游標指向關聯線,然後按一下該關聯線將其選取。

    選取關聯線時,線條會變粗。

  2. 選取關聯線後,在關聯線上按兩下。

    -或-

    [設計] 索引標籤上,按一下 [工具] 群組中的 [編輯關聯]

[編輯關聯] 對話方塊隨即出現。

開啟編輯關聯對話方塊

  1. [資料庫工具] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [資料庫關聯圖]

    [資料庫關聯圖] 視窗隨即出現。

    如果您尚未定義任何關聯,而且這是您第一次開啟 [關聯] 視窗,此時就會顯示 [顯示資料表] 對話方塊。當對話方塊顯示時,請按一下 [關閉]。

  2. 在 [設計] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [所有關聯]。

    隨即會顯示有關聯的所有資料表,並且顯示關聯線。 請注意,除非您在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件],否則不會顯示隱藏的資料表 (資料表的 [屬性] 對話方塊中已選取 [隱藏] 核取方塊) 及其關聯。

  3. 針對您想要變更的關聯,按一下關聯線。選取關聯線時,它會變粗。

  4. 按兩下關聯線。

    -或-

    在 [設計] 索引標籤上,按一下 [工具] 群組中的 [編輯關聯]。

    隨即出現 [編輯關聯] 對話方塊。

    [編輯關聯] 對話方塊

  5. 進行所要變更,然後按一下 [確定]。

    您可以在 [編輯關聯] 對話方塊中變更資料表關聯。更明確地說,您可以變更關聯之任一端的資料表或查詢,或是任一端的欄位。您也可以設定連接類型,或者強迫參考完整性並選擇串聯選項。如需連接類型與如何設定連接類型的詳細資訊,請參閱設定連接類型一節。如需如何強迫參考完整性並選擇串聯選項的詳細資訊,請參閱強迫參考完整性一節。

設定連接類型

當您定義資料表關聯時,關聯性的設定會影響到查詢設計。例如,如果您在兩個資料表之間定義關聯性,然後建立會用到這兩個資料表的查詢,Access 就會根據關聯中所指定的欄位,自動選取預設的符合欄位。您可以在查詢中覆寫這些預設值,然而關聯中所提供的值通常是正確的值。由於在資料庫中比對與符合多個資料表的資料,是最常見的動作,所以藉由建立關聯性來設定預設值可以讓您省時又省力。

多重資料表查詢會藉由比對共同欄位中的值,來結合多個資料表的資訊。進行比對和結合的作業稱為連接。例如,假設您要顯示客戶訂單資訊,就要在 Customer ID 欄位上建立連接 Customers 資料表和 Orders 資料表的查詢。查詢結果僅會包含相符之資料列的客戶資訊和訂單資訊。

您可以為每個關聯指定的值之一,就是連接類型。連接類型會告訴 Access 查詢結果中要包括哪些記錄。例如,若再以 Customer ID 共同欄位連接 Customers 資料表和 Orders 資料表的查詢為例,使用預設的連接類型 (稱為內部連接) 時,查詢僅會傳回共同欄位 (亦稱為連接欄位) 的資料相同的 Customer 資料列和 Order 資料列。

但是,假設您要包含所有的客戶(甚至是尚未下任何訂單的客戶),就必須將連接類型從內部連接變更為左外部連接。左外部連接會傳回在關聯左邊之資料表中所有的資料列,以及關聯右邊之資料表中相符的資料列。右外部連接則會傳回右邊的所有資料列,以及左邊相符的資料列。

在此情況下,「左」和「右」會參照資料表在 [編輯關聯] 對話方塊中的相對位置,而非在 [資料庫關聯圖] 視窗中的相對位置。

請考慮查詢時較常需要針對此關聯性進行的資料表連接結果,再決定連接類型的設定。

設定連接類型

  1. 按一下 [編輯關聯] 對話方塊中的 [連接類型]

    [連接屬性] 對話方塊隨即出現。

  2. 按一下您要的選擇,然後按一下 [確定]。

下表 (其中使用 Customers 和 Orders 資料表) 會顯示在 [連接屬性] 對話方塊中所顯示的三個選擇、其中使用的連接類型,以及是否傳回每個資料表的所有資料列或僅傳回相符的資料列。

選擇

關聯式連接

左資料表

右資料表

1. 僅包含兩個資料表的連接欄位之資料相同的記錄。

內部連接

相符的資料列

相符的資料列

2. 包括所有來自 '客戶' 的記錄和只包括那些連接欄位相等的 '訂單' 欄位。

左外部連接

所有的資料列

相符的資料列

3. 包括所有來自 'Orders' 的記錄,但僅包含連接欄位相等的 'Customers' 記錄。

右外部連接

相符的資料列

所有的資料列

當您選擇選項 2 或選項 3 時,關聯線上就會出現一個箭號。此箭號會指向僅顯示相符資料列之關聯的一端。

在連接屬性對話方塊中進行變更

  1. [資料庫工具] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [資料庫關聯圖]

    附註: 如果您尚未定義任何關聯,而且這是您第一次開啟 [資料庫關聯圖] 視窗,則會出現 [顯示資料表] 對話方塊。如果出現該對話方塊,請按一下 [關閉]

  2. 在 [設計] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [所有關聯]。

  3. 隨即會顯示有關聯的所有資料表,並且顯示關聯線。 請注意,除非您在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件],否則不會顯示隱藏的資料表 (資料表的 [屬性] 對話方塊中已選取 [隱藏] 核取方塊) 及其關聯。

  4. 針對所要變更的關聯,按一下關聯線。選取關聯線時,線條會變粗。

  5. 按兩下關聯線。[編輯關聯] 對話方塊即會出現。

  6. 按一下 [連接類型.

  7. 在 [連接屬性] 對話方塊中,按一下選項,然後按一下 [確定]。

    1. [連接屬性] 對話方塊

  8. 對關聯進行任何其他變更,然後按一下 [確定]。

頁面頂端

強迫參考完整性

參考完整性的用途在於避免造成記錄的孤立,亦即參考其他已經不存在的記錄。您可以在資料表關聯中啟用強迫參考完整性。啟用後,Access 就會拒絕違反該資料表關聯之參考完整性的作業。也就是說,Access 會拒絕變更參考目標的更新作業,以及移除參考目標的刪除作業。若要讓 Access 散佈參考的更新和刪除作業,以便變更所有相關的資料列,請參閱設定串聯選項一節。

開啟或關閉參考完整性

  1. [資料庫工具] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [資料庫關聯圖]

  2. 在 [設計] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [所有關聯]。

    隨即會顯示有關聯的所有資料表,並且顯示關聯線。 請注意,除非您在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件],否則不會顯示隱藏的資料表 (資料表的 [屬性] 對話方塊中已選取 [隱藏] 核取方塊) 及其關聯。

  3. 針對所要變更的關聯,按一下關聯線。選取關聯線時,線條會變粗。

  4. 按兩下關聯線。[編輯關聯] 對話方塊即會出現。

  5. 選取或清除 [強迫參考完整性]

  6. 對關聯進行任何其他變更,然後按一下 [確定]

如果您選取了強迫參考完整性,則會套用下列規則:

  • 如果值不存在於主資料表的主索引鍵欄位中,您就不能在關聯資料表的外部索引鍵欄位中輸入該值 (這樣做會造成孤立記錄)。 

  • 如果關聯資料表中有相符的記錄,則不能刪除主資料表中的記錄。例如,如果 Orders 資料表中有指派給某位員工的訂單,就不能從 Employees 資料表中刪除該員工的記錄。但是,藉由選取 [串聯刪除關聯記錄] 核取方塊,即可在一次的作業中同時刪除主記錄「及」所有關聯記錄。

  • 如果變更主資料表中的主索引鍵值會造成孤立記錄,您就不能變更主資料表中的主索引鍵值。例如,如果 Order Details 資料表中有指定至某個訂單的產品線項目,就不能在 Orders 資料表中變更該訂單編號。但是,藉由選取 [串聯刪除關聯記錄] 核取方塊,即可在一次的作業中同時刪除主記錄「及」所有關聯記錄。

    附註: 如果您無法啟用參考完整性,請注意是否已具備下列啟用強迫參考完整性的條件:

    • 主資料表中的共同欄位必須是主索引鍵或擁有唯一索引。

    • 共同欄位必須有相同的資料類型。一個例外就是自動編號欄位可以與 [欄位大小] 屬性設定為 [長整數] 的數字欄位關聯。

    • 這兩個資料表屬於同一個 Access 資料庫。連結資料表上無法強迫參考完整性。但是如果來源資料表都是 Access 的格式,您就可以開啟儲存這些資料表的資料庫,然後在其中啟用參考完整性。

設定串聯選項

有時候您可能會需要變更一對多關聯中「一」端的值。在此情況下,您就需要 Access 在單一作業中自動更新所有相關的資料列。如此才能夠完整地完成更新作業,確保資料庫不會有不一致的狀況 (亦即有的資料列有更新,有的資料列沒有更新)。Access 對於 [串聯更新關聯欄位] 選項的支援,可以協助您避免如此的問題。當您強迫參考完整性並選擇 [串聯更新關聯欄位] 選項,然後更新主索引鍵,Access 就會自動更新所有參考該主索引鍵的欄位。

有時候您也可能需要刪除某一個資料列及所有相關的記錄 (例如,貨運公司的記錄以及所有與該貨運公司相關的訂單)。因此,Access 有支援 [串聯刪除關聯記錄] 選項。當您強迫參考完整性並選取 [串聯刪除關聯記錄] 核取方塊,然後刪除包含主索引鍵的記錄時,Access 就會自動刪除所有參考該主索引鍵的記錄。

開啟或關閉串聯更新及/或串聯刪除

  1. [資料庫工具] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [資料庫關聯圖]

  2. 在 [設計] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [所有關聯]。

    隨即會顯示有關聯的所有資料表,並且顯示關聯線。 請注意,除非您在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件],否則不會顯示隱藏的資料表 (資料表的 [屬性] 對話方塊中已選取 [隱藏] 核取方塊) 及其關聯。

  3. 針對您想要變更的關聯,按一下關聯線。選取關聯線時,它會變粗。

  4. 按兩下關聯線。

    [編輯關聯] 對話方塊隨即出現。

  5. 選取 [強迫參考完整性] 核取方塊。

  6. 選取 [串聯更新關聯欄位] 或 [串聯刪除關聯欄位] 核取方塊,或選取兩者。

  7. 對關聯進行任何其他變更,然後按一下 [確定]

附註: 如果主索引鍵是 [自動編號] 欄位,由於您無法變更 [自動編號] 欄位中的值,所以選取 [串聯更新關聯欄位] 核取方塊時將不會產生任何影響。

頁面頂端

刪除資料表關聯

重要: 移除關聯時,也會同時移除該關聯的參考完整性支援 (如果已啟用該功能)。因此,Access 將無法自動避免在「多端」關聯中造成記錄孤立。

若要移除資料表關聯,您必須刪除 [資料庫關聯圖] 視窗中的關聯線。將游標指向關聯線,然後按一下該關聯線。選取關聯線時,線條會變粗。選取關聯線後,請按 DELETE 鍵。

  1. [資料庫工具] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [資料庫關聯圖]

  2. 在 [設計] 索引標籤上,按一下 [資料庫關聯圖] 群組中的 [所有關聯]。

    隨即會顯示有關聯的所有資料表,並且顯示關聯線。 請注意,除非您在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件],否則不會顯示隱藏的資料表 (資料表的 [屬性] 對話方塊中已選取 [隱藏] 核取方塊) 及其關聯。

  3. 按一下您要刪除之關聯的關聯線。選取關聯線時,它會變粗。

  4. 按 DELETE 鍵。

  5. Access 可能會顯示 [您確定要從資料庫中永久刪除選取的關聯嗎?] 的訊息。如果出現此確認訊息,請按一下 [是]。

附註: 如果資料表關聯所使用的資料表正在使用中,可能由其他使用者或處理程序使用中,或由開啟的資料庫物件 (例如表單) 使用中,您就無法刪除其關聯。移除關聯之前,您必須先關閉任何使用這些資料表的已開啟物件。

頁面頂端

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

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×