建立、編輯或刪除關聯

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

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

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

附註: 本文內容不適用於 Access 應用程式 - 也就是您使用 Access 設計並於線上發佈的資料庫類型。 在 Access 應用程式中,使用的是查閱欄位 (而非關聯) 來結合兩個不同資料表的資料。 請參閱建立關聯以取得更多資訊。

本文內容

概觀

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

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

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

編輯關聯

強迫參考完整性

刪除資料表關聯

概觀

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

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

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

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

Access 2010 Web 資料庫關聯

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

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

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

頁面頂端

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

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

    重要: 在 Access 應用程式中無法使用 [資料庫關聯圖] 視窗。 若要在 Access 應用程式中建立關聯,請參閱建立關聯中的步驟。

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

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

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

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

    [編輯關聯] 對話方塊即會顯示。
    [編輯關聯] 對話方塊

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

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

  6. 按一下 [建立]。

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

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

    附註: 

    • 建立一對一關聯    兩個共同欄位 (通常是主索引鍵和外部索引鍵欄位) 都必須有唯一的索引。也就是說,這些欄位的 [索引] 屬性必須設定為 [是 (不可重複)]。如果兩個欄位都有唯一的索引,Access 就會建立一對一關聯性。

    • 建立一對多關聯    關聯之一端的欄位 (通常是主索引鍵) 必須有唯一的索引。也就是說,這個欄位的 [索引] 屬性必須設定為 [是 (不可重複)]。關聯之多端的欄位「不」應該有唯一的索引。 該欄位可以有索引,但必須允許重複。也就是說,這個欄位的 [索引] 屬性必須設定為 [否][是 (可重複)]。當其中一個欄位有唯一的索引,而另一個欄位沒有,Access 就會建立一對多關聯。

頁面頂端

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

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

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

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

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

開啟欄位清單窗格

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

    [欄位清單] 窗格

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

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

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

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

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

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

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

    [查閱精靈] 即會啟動。

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

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

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

頁面頂端

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

若要在 Access 2010 Web 資料庫中建立關聯,請使用 [查閱精靈]。 在 Web 資料庫中無法使用 [資料庫關聯圖] 視窗。 您可以將一個資料表中的欄位作為另一個資料表中關聯欄位的值來源。 若要在 Access 應用程式中建立關聯,請參閱建立關聯中的步驟。

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

使用 [查閱精靈] 在 Access 2010 Web 資料庫中建立關聯。

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

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

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

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

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

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

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

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

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

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

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

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

在 Access 2010 Web 資料庫中修改關聯

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

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

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

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

    • 作為值來源的欄位

    • 值的排序順序

    • 欄位的寬度,以及是否隱藏索引欄

    • 查閱欄位的標籤

    • 是否啟用資料完整性

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

頁面頂端

編輯關聯

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

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

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

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

    -或-

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

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

開啟 [編輯關聯] 對話方塊

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

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

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

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

    具有關聯的所有資料表即會顯示,並顯示關聯線。請注意,只有在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件] 後,才會顯示隱藏的資料表 (在資料表 [屬性] 對話方塊中選取了 [隱藏] 核取方塊的資料表) 及其關聯。

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

  4. 按兩下關聯線。

    -或-

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

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

    [編輯關聯] 對話方塊

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

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

設定連接類型

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

多重資料表查詢會比對共同欄位中的值,藉此合併多個資料表的資訊。進行比對和合併的作業稱為連接。舉例來說,假設您要顯示客戶訂單資訊, 可以在 [客戶識別碼] 欄位上建立連接 [客戶] 資料表和 [訂單] 資料表的查詢。查詢結果僅會包含相符之資料列的客戶資訊和訂單資訊。

在您可以為每個關聯指定的值中,其中有一個就是連接類型。連接類型會告訴 Access 查詢結果中要包括哪些記錄。若再以 [客戶識別碼] 共同欄位連接 [客戶] 資料表和 [訂單] 資料表的查詢為例, 使用預設的連接類型 (稱為內部連接) 時,查詢僅會傳回共同欄位 (亦稱為連接欄位) 的資料相同的客戶資料列和訂單資料列。

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

附註: 在此情況下,「左」和「右」是指 [編輯關聯] 對話方塊中資料表的位置,而不是指在 [資料庫關聯圖] 視窗中的位置。

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

設定連接類型

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

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

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

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

選擇

關聯式連接

左資料表

右資料表

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

內部連接

相符的資料列

相符的資料列

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

左外部連接

所有的資料列

相符的資料列

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

右外部連接

相符的資料列

所有的資料列

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

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

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

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

  2. [設計] 索引標籤的 [關聯] 群組中,按一下 [所有關聯]

    隨即會顯示所有具備關聯的資料表,並顯示關聯線。請注意,只有在 [導覽選項] 對話方塊中選取 [顯示隱藏物件] 後,才會顯示隱藏的資料表 (在資料表 [屬性] 對話方塊中已選取 [隱藏] 核取方塊的資料表) 及其關聯。

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

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

  5. 按一下 [連接類型]

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

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

頁面頂端

強迫參考完整性

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

開啟或關閉參考完整性

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

  2. [設計] 索引標籤的 [關聯] 群組中,按一下 [所有關聯]

    隨即會顯示所有具備關聯的資料表,並顯示關聯線。請注意,只有在 [導覽選項] 對話方塊中選取 [顯示隱藏物件] 後,才會顯示隱藏的資料表 (在資料表 [屬性] 對話方塊中已選取 [隱藏] 核取方塊的資料表) 及其關聯。

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

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

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

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

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

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

  • 如果關聯資料表中有相符的記錄,則無法刪除主資料表中的記錄。舉例來說,如果 [訂單] 資料表中有指派給某位員工的訂單,就無法從 [員工] 資料表中刪除該員工的記錄。但是,藉由選取 [串聯刪除關聯記錄] 核取方塊,您可以在一次作業中同時刪除主記錄所有關聯記錄。

  • 如果變更主資料表中的主索引鍵值會造成記錄孤立,您就無法變更主資料表中的主索引鍵值。舉例來說,如果 [訂單詳細資料] 資料表中有指派至訂單的產品線項目,就無法在 [訂單] 資料表中變更該訂單編號。但是,藉由選取 [串聯更新關聯欄位] 核取方塊,您可以在一次作業中同時更新主記錄所有關聯記錄。

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

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

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

    • 這兩個資料表屬於同一個 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 支援專員連絡以深入了解您的意見。

×