Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access 中的關聯可協助您結合兩個不同資料表中的資料。 每個關聯由具有對應資料的兩個資料表中的欄位組成。 例如,在產品資料表和訂單明細資料表中都會有一個產品編號欄位。 訂單明細資料表中的每一筆記錄,其產品編號會對應至產品資料表中具相同產品編號的記錄。

在查詢中使用相關資料表時,關聯可讓 Access 判斷要在結果集中結合各資料表中的哪一些記錄。 透過不再同步已刪除的資料,關聯還有助於防止資料遺失,這稱為參考完整性。

在您使用關聯之前,請務必先瞭解背景概念。 如需詳細資訊,請參閱資料表關聯指南以及開始使用資料表關聯

本文內容

概觀

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

  • 在 [資料庫關聯圖] 視窗中,新增您要關聯的資料表,然後將欄位從一個資料表拖曳到另一個資料表來產生關聯。

  • 將欄位從 [欄位清單] 窗格拖曳至資料表資料工作表。

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

頁面頂端

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

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

  2. 在 [ 資料庫關聯圖設計] 索 引標籤上,按兩下 [ 資料庫關聯圖] 群組中的 [ 新增數據表]

  3. 選取一個或多個資料表或查詢,然後按一下 [新增]。 將資料表和查詢新增至 [資料庫關聯圖] 視窗完成後,請按一下 [關閉]。

  4. 從一個資料表中拖曳某個欄位 (通常是主索引鍵) 至另一個資料表中的共同欄位 (外部索引鍵)。 若要拖曳多個欄位,請按住 CTRL 鍵,然後按一下各個欄位,再加以拖曳。[編輯關聯] 對話方塊即會出現。 Access 中含有 [客戶] 和 [訂單聯結] 字段的 [編輯關聯] 對話框

  5. 請確認所顯示的欄位名稱是關聯的共同欄位。 如果欄位名稱不正確,請在欄位名稱上按一下,然後從清單中選取適當的欄位。 若要針對此關聯執行強迫參考完整性,請選取 [強迫參考完整性] 核取方塊。 如需參考完整性的詳細資訊,請參閱強迫參考完整性一節。

  6. 按一下 [建立]。

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

    附註: 

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

    • 建立一對多關聯    關聯的一側 (通常是主索引鍵 )的欄位必須具有唯一索引。 這表示此欄位的 Indexed 屬性應設為 Yes (不可重複)。 許多端的欄位則「不」應有唯一索引。 可以有索引,但它必須允許重複。 這表示此欄位的 Indexed 屬性應設為 NoYes (可重複)。 當一個欄位有唯一索引,而其他欄位沒有時,Access 就會建立為一對多關聯。

頁面頂端

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

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

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

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

  • 在 [瀏覽窗格] 中,按兩下資料表。

開啟欄位清單窗格

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

    [欄位清單] 窗格

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

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

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

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

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

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

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

    [查閱精靈] 即會啟動。

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

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

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

頁面頂端

編輯關聯

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

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

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

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

    -或-

    在 [資料庫 關聯圖設計] 索引 標籤的 [ 工具 ] 群組中,按兩下 [ 編輯關聯圖]

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

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

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

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

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

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

  4. 按兩下關聯線。

    -或-

    在 [資料庫 關聯圖設計] 索引 標籤的 [ 工具 ] 群組中,按兩下 [ 編輯關聯圖]

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

    Access 中含有 [客戶] 和 [訂單聯結] 字段的 [編輯關聯] 對話框

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

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

設定連接類型

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

多個資料表查詢會透過比對共同欄位中的值,以合併多個資料表中的資訊。 進行比對和合併的作業稱為連接。 例如,假設您想要顯示客戶的訂單。 您建立一個查詢來連接 [客戶] 資料表和 [客戶識別碼] 欄位中的 [訂單] 資料表。 查詢結果僅包含找到相應符合項目的資料列的客戶資訊和訂單資訊。

您可以為每個關聯指定的其中一個值是連接類型。 連接類型會告訴 Access 在查詢結果中應包含哪些記錄。 例如,再次考量連接 [客戶] 資料表和 [訂單] 資料表 (位於代表客戶識別碼的共同欄位上) 的查詢。 使用預設連接類型 (稱為內部聯結),查詢僅會傳回客戶資料列和共同欄位 (也稱為連接欄位) 相等的訂單資料列。

但是,假設您想要包括所有客戶 - 即使是那些尚未下訂單的客戶。 若要這麼做,您必須將連接類型從內部連接變更為左方外部聯結。 左方外部聯結會傳回關聯左側的資料表中的所有資料列,以及右側資料表上的相符項目。 右方外部聯結則會傳回右側的所有資料列,以及左側的相符項目。

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

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

設定連接類型

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

    [連接屬性] 對話方塊即會出現。 Access 中的 [聯結屬性] 對話框顯示三個聯結選項。 已選取第一個選項,其中的狀態只包含兩個數據表中聯結字段相等的數據列。

  2. 選取您的選擇,然後按兩下 [ 確定]

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

選擇

關聯式連接

左資料表

右資料表

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

內部連接

相符的資料列

相符的資料列

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

左外部連接

所有的資料列

相符的資料列

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

右外部連接

相符的資料列

所有的資料列

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

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

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

  2. 在 [ 資料庫關聯設計] 索引 標籤的 [資料庫關聯 ] 群組中,按兩下 [ 所有關聯] 隨即顯示所有擁有關聯的資料表,並顯示關聯線。 請注意,只有在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件] 核取方塊後,才會顯示隱藏的資料表 (在資料表 [屬性] 對話方塊中選取了 [隱藏] 核取方塊的資料表) 及其關聯。

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

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

  5. 按一下 [連接類型]

  6. 在 [ 連接屬性 ] 對話框中,選取一個選項,然後按兩下 [ 確定] Access 中的 [聯結屬性] 對話框顯示三個聯結選項。 已選取第一個選項,其中的狀態只包含兩個數據表中聯結字段相等的數據列。

  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 可能會顯示 [您確定要從您的資料庫永久刪除所選定的關聯嗎?] 的訊息。 如果出現此確認訊息,請按一下 [是]。

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

頁面頂端

另請參閱

將查閱欄位新增至資料表

什麼是 [資料庫關聯圖] 視窗?

比較兩個資料表並只尋找相符的資料

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。