資料表關聯指南

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

移除不必要的資料 (重複的資料),是理想資料庫設計的其中一項目標。為達成此目的,您可以將資料分割成許多不同主題的資料表,讓每項事實只呈現一次。之後您可以提供方法 (例如在相關的資料表中放入通用欄位),讓 Access 可以重新組合這些分割的資訊 。但若要能夠正確地執行此步驟,必須先了解資料表之間的關聯,才能在資料庫中指定這些關聯。

本文內容

簡介

資料表關聯的類型

為何需要建立資料表關聯?

瞭解參考完整性

檢視資料表關聯

建立資料表關聯

刪除資料表關聯

變更資料表關聯

強迫參考完整性

簡介

當您在資料庫中建立不同主題的資料表後,必須提供方法,讓 Access 得以在必要時重新組合該資訊。您可以在相關的資料表中放入共同欄位,同時定義不同資料表間的關聯以達成此目的。接著您可以建立查詢、表單及報表,藉此同時顯示不同資料表的資訊。舉例來說,此處所示的表單包含了來自數個資料表的資訊:

同時顯示取自五個資料表之相關資訊的訂單表單

1. 此表單的資訊來自 [客戶] 資料表...

2. ...[訂單] 資料表...

3. ...[產品] 資料表 ...

4. ...及 [訂單詳細資料] 資料表。

[付款人] 方塊中的 [客戶名稱] 是來自 [客戶] 資料表,[訂單識別碼] 和 [訂單日期] 的值來自 [訂單] 資料表,[產品名稱] 來自 [產品] 資料表,[單價] 與 [數量] 的值則來自 [訂單詳細資料] 資料表。這些資料表會以各種方式互相連結,以便將資訊從各個資料表帶入此表單。

前述範例的資料表各欄位必須經過調整,才會顯示同筆訂單的資訊。您可以利用資料表關聯進行此項調整。資料表關聯會比對兩個資料表內 ,名稱相同之索引鍵欄位內的資料。在大部分情況下,這些相符的欄位通常是某個資料表的主索引鍵 (提供每筆記錄的唯一識別碼),在其他資料表中則是外部索引鍵。例如員工可以藉由建立 [員工] 資料表與 [訂單] 資料表之 [員工識別碼] 欄位間的關聯,而與其所負責的訂單建立關聯。

[員工識別碼] 用來當作 [員工] 資料表中的主索引鍵和 [訂單] 資料表中的外部索引鍵。

1. [員工識別碼] 在兩個資料表中出現時 ,一個會用為主索引鍵...

2. ...另一個用為外部索引鍵。

頁面頂端

資料表關聯的類型

有三種類型的 [在 Access 中的資料表關聯。

  • 一對多關聯

    讓我們以一個包含 [客戶] 資料表和 [訂單] 資料表的訂單追蹤資料庫為例。客戶可以下許多筆訂單, 所以 [客戶] 資料表中的每位客戶在 [訂單] 資料表中可能會有很多筆訂單。因此,[客戶] 資料表和 [訂單] 資料表之間的關聯就會是一對多關聯。

    若要在資料庫設計中表示一對多關聯,可以將「單端」關聯的主索引鍵,新增到「多端」關聯的資料表中作為其欄位。以此案例為例,您可以將新欄位 (即 [客戶] 資料表中的 [識別碼] 欄位) 加入 [訂單] 資料表,然後將其命名為「客戶識別碼」。之後 Access 即可使用 [訂單] 資料表中的 [客戶識別碼] 編號,尋找每一筆訂單的正確客戶。

  • 多對多關聯

    現在,讓我們來看看 [產品] 資料表與 [訂單] 資料表之間的關聯。單筆訂單可以包含多項產品; 另一方面,單項產品也可以出現在許多訂單上。因此,[訂單] 資料表的每一筆記錄,在 [產品] 資料表中都可以包含許多筆記錄; 而 [產品] 資料表的每一筆記錄,在 [訂單] 資料表中也都可以有許多筆記錄。此關係稱為多對多關聯。請注意,若要偵測資料表之間現有的多對多關聯,必須同時考量關聯的兩端。

    若要表示多對多關聯,必須建立稱為連接資料表的第三個資料表,將多對多關聯分成兩個一對多關聯。將兩個資料表中的主索引鍵都插入到第三個資料表, 如此一來,第三個資料表就會記錄關聯中每一個出現的項目或執行個體。例如,[訂單] 資料表及 [產品] 資料表具有多對多關聯,這種關聯是藉由建立兩個與 [訂單詳細資料] 資料表的一對多關聯來定義。一個訂單可以含有多項產品,而每項產品可以出現在多筆訂單上。

  • 一對一關聯

    在一對一關聯中,第一個資料表的每一筆記錄在第二個資料表中只能有一筆相符的記錄,而第二個資料表中的每一筆記錄在第一個資料表中也只能有一筆相符的記錄。這種類型的關聯並不常見,因為以這種方式所產生的資訊通常會儲存在同一個資料表, 不過,基於安全考量,您可以使用一對一關聯將一個含有許多欄位的資料表分成幾個獨立的部分資料表,或者使用一對一關聯儲存只適用於主資料表子集的資訊。當您真正辨識出這類關聯時,兩個資料表必須共用一個共同欄位。

頁面頂端

為何需要建立資料表關聯?

您可以使用 [資料庫關聯圖] 視窗明確地建立資料表關聯,也可從 [欄位清單] 窗格拖曳欄位以達成此目的。當您需要在資料庫物件中使用資料表時, Access 會從資料表關聯得知如何連接這些資料表。以下是您在建立其他資料庫物件 (如表單、查詢及報表) 之前,必須先建立資料表關聯的理由。

  • 資料表關聯會影響您的查詢設計

    若要使用多個資料表的記錄,通常必須建立連接數個資料表的查詢。執行查詢時,會將第一個資料表的主索引鍵欄位值,與第二個資料表的外部索引鍵欄位值進行比對。例如,若要傳回列有每位客戶之所有訂單的資料列,必須建立以 [客戶識別碼] 欄位為基礎的查詢,藉此連接 [客戶] 資料表與 [訂單] 資料表。您可以在 [資料庫關聯圖] 視窗中手動指定要連接的欄位。若您已定義資料表之間的關聯,Access 將會依據現有的資料表關聯提供預設的連接。此外,如果您使用查詢精靈,Access 會使用其從您已定義之資料表關聯收集而來的資訊,提供您正確的選擇,並預先在屬性設定中填入適當的預設值。

  • 資料表關聯會影響您的表單和報表設計

    當您設計表單或報表時,Access 會從所定義的資料表關聯取得資訊,並依據這些資訊呈現關聯中的選擇,且在屬性設定中填入適當的預設值。

  • 資料表關聯是用來執行強迫參考完整性、避免資料庫中發生記錄孤立的基礎。孤立記錄是指所參考的記錄已經不存在的記錄 ,例如參考到某個不存在之客戶記錄的訂單記錄,就是一個孤立記錄。

    設計資料庫時,您會將所有資訊分成幾個資料表,且每一個資料表都有一個主索引鍵, 然後在參考這些主索引鍵的關聯資料表中新增外部索引鍵。這些成對的外部索引鍵與主索引鍵是資料表關聯與多重資料表查詢的基礎。因此,保持這些外部索引鍵與主索引鍵參考的同步非常重要。參考完整性可以確保讓這些參考保持同步,而且必須依據資料表關聯。

頁面頂端

瞭解參考完整性

設計資料庫時,可以將資料庫資訊分成許多不同主題的資料表,藉此盡量避免資料重複。之後,您可以在關聯資料表中放入共同欄位,讓 Access 得以重新組合資訊。例如,若要表示一對多關聯,可以將「單端」的資料表主索引鍵,新增到「多端」的資料表中作為額外欄位。當要重新組合資料時,Access 會以「多端」資料表中的值為依據,在「單端」資料表中查閱對應的值。如此一來,「多端」資料表中的值即會參考「單端」資料表中對應的值。

假設 [貨運公司] 和 [訂單] 資料表之間存在一對多關聯,而您想要刪除某一家貨運公司的記錄。如果想要刪除的貨運公司在 [訂單] 資料表中有一些訂單記錄,則當您將該貨運公司的記錄從 [貨運公司] 資料表中刪除之後,這些訂單記錄便會變成「孤立」記錄。這些訂單記錄仍然留有貨運公司識別碼,但是該識別碼已經無效,因為所參考的記錄已經不存在。

參考完整性之目的,在避免出現孤立的記錄,並保持參考的同步,讓這種假設情況不會發生。

您可以在資料表關聯中啟用強迫參考完整性 (如需逐步指示,請參閱強迫參考完整性)。啟用後,Access 就會拒絕任何違反該資料表關聯之參考完整性的作業。也就是說,Access 會拒絕變更參考目標的更新作業,以及移除參考目標的刪除作業。但您很有可能需要對已在 [訂單] 資料表中有數筆訂單記錄的貨運公司,變更其主索引鍵。此時,最好由 Access 統一在一次作業中,自動更新所有受影響的資料列。如此 Access 才可確保更新作業已全面完成,讓資料庫不會出現部分資料列更新而部分資料列未更新這類不一致的狀況。也因此,Access 支援 [串聯更新關聯欄位] 選項。當您執行強迫參考完整性並選擇 [串聯更新關聯欄位] 選項,然後更新主索引鍵,Access 就會自動更新所有參考該主索引鍵的欄位。

您偶爾可能也需要刪除資料列及其所有相關記錄  (例如,貨運公司的記錄及所有其相關的訂單)。因此,Access 也支援 [串聯刪除關聯記錄] 選項。若您執行強迫參考完整性,並選擇 [串聯刪除關聯記錄] 選項之後刪除關聯中主索引鍵端的記錄,Access 會自動刪除參考該主索引鍵的所有記錄。

頁面頂端

檢視資料表關聯

若要檢視資料表關聯,請按一下 [資料庫工具] 索引標籤上的 [資料庫關聯圖]。[資料庫關聯圖] 視窗即會開啟並顯示所有現有的關聯。如果尚未定義任何資料表關聯,而且是第一次開啟 [資料庫關聯圖] 視窗,Access 便會提示您在該視窗內新增資料表或查詢。

開啟資料庫關聯圖視窗

  1. 按一下 [檔案],然後按一下 [開啟舊檔]

  2. 選取並開啟資料庫。

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

    如果資料庫含有關聯,便會開啟 [資料庫關聯圖] 視窗。如果資料庫沒有包含任何關聯,而且是第一次開啟 [資料庫關聯圖] 視窗,便會出現 [顯示資料表] 對話方塊。按一下 [關閉] 關閉對話方塊。

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

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

資料表關聯是以 [資料庫關聯圖] 視窗中資料表之間所畫的關聯線來表示。支援關聯的共同欄位之間若出現細線,表示是未執行強迫參考完整性的關聯。當您按一下關聯線選取該關聯時,選取的線會變粗。若您針對此關聯執行強迫參考完整性,這條線在兩端都會變得更粗。此外,在關聯的一端線較粗的部分上方會出現數字 1,而另一端線較粗的部分上方則會出現無限符號 ()。

您可以從作用中之 [資料庫關聯圖] 視窗的功能區中選取下列命令:

[設計] 索引標籤上的 [工具] 群組:

  • 編輯關聯    開啟 [編輯關聯] 對話方塊。選擇關聯線時可以按一下 [編輯關聯] 以變更資料表關聯。您也可以按兩下關聯線。

  • 清除版面配置    移除 [資料庫關聯圖] 視窗顯示中的所有資料表與關聯。請注意,此命令只會隱藏資料表與關聯 ,而不會實際將其刪除。

  • 關聯報表    建立報表顯示資料庫內之資料表與關聯。此報表只會顯示 [資料庫關聯圖] 視窗中所未隱藏的資料表與關聯。

[設計] 索引標籤上的 [資料庫關聯圖] 群組:

  • 顯示資料表    開啟 [顯示資料表] 對話方塊,讓您選取要在 [資料庫關聯圖] 視窗中檢視的資料表與查詢。

  • 隱藏資料表    在 [資料庫關聯圖] 視窗中隱藏所選的資料表。

  • 直接關聯    在 [資料庫關聯圖] 視窗中顯示所選資料表尚未顯示之所有關聯與關聯資料表。

  • 所有關聯    在 [資料庫關聯圖] 視窗中顯示資料庫內之所有關聯與關聯資料表。請注意,只有在 [導覽選項] 對話方塊中選取了 [顯示隱藏物件] 後,才會顯示隱藏的資料表 (在資料表 [屬性] 對話方塊中選取了 [隱藏] 核取方塊的資料表) 及其關聯。

  • 關閉    關閉 [資料庫關聯圖] 視窗。若您變更 [資料庫關聯圖] 視窗的版面配置,系統即會詢問您是否要儲存變更。

頁面頂端

建立資料表關聯

若要建立資料表關聯,可以利用 [資料庫關聯圖] 視窗,或是從 [欄位清單] 窗格中將欄位拖曳至資料工作表。當您建立資料表的關聯時,共同欄位的名稱不一定要相同,雖然情況常是如此。比較重要的是,這些欄位必須有相同的資料類型。但是,如果主索引鍵欄位是 [自動編號] 欄位,則只要這兩個欄位的 [欄位大小] 屬性相同,外部索引鍵欄位也可以是 [數字] 欄位。例如,如果 [自動編號] 欄位與 [數字] 欄位的 [欄位大小] 屬性都是 [長整數],則這兩個欄位就可以相互對應。當兩個共同欄位都是 [數字] 欄位時,雙方的 [欄位大小] 屬性設定必須相同。

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

  1. 按一下 [檔案],然後按一下 [開啟舊檔]

  2. 選取並開啟資料庫。

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

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

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

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

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

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

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

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

  8. 按一下 [建立]

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

    附註: 

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

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

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

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

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

  1. 按一下 [檔案] 索引標籤上的 [開啟舊檔]

  2. [開啟舊檔] 對話方塊中,選取資料庫並加以開啟。

  3. 在 [功能窗格] 中,以滑鼠右鍵按一下要新增欄位並建立關聯的資料表,然後按一下 [開啟]

開啟欄位清單窗格

  • 按 ALT+F8。

    [欄位清單] 窗格即會出現。

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

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

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

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

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

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

    [查閱精靈] 即會啟動。

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

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

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

頁面頂端

刪除資料表關聯

若要移除資料表關聯,您必須刪除 [資料庫關聯圖] 視窗中的關聯線。仔細地將游標指向關聯線,然後按一下該關聯線。選取關聯線時,線條會變粗。選取關聯線後,請按 DELETE 鍵。請注意,移除關聯時,也會同時移除該關聯的參考完整性支援 (如果已啟用該功能)。因此,Access 將無法自動避免在「多端」關聯中造成記錄孤立。

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

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

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

    隨即顯示所有擁有關聯的資料表,並顯示關聯線。

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

  4. 按下 DELETE 鍵。

    -或-

按一下滑鼠右鍵,然後按一下 [刪除]

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

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

頁面頂端

變更資料表關聯

在 [資料庫關聯圖] 視窗中選取關聯然後加以編輯,即可變更關聯。仔細地將游標指向關聯線,然後按一下該關聯線予以選取。選取關聯線時,線條會變粗。選取關聯線之後按兩下,或按一下 [設計] 索引標籤上 [工具] 群組內的 [編輯關聯]。隨即出現 [編輯關聯] 對話方塊。

在 [編輯關聯] 對話方塊中進行變更

  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. 按兩下關聯線。

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

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

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

啟用強迫參考完整性之後,就必須遵循下列規則:

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

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

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

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

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

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

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

設定串聯選項

您可能會需要變更「單端」關聯中的值。在此情況下,您就需要 Access 在單一作業中自動更新所有相關的資料列。如此才能夠全面完成更新作業 ,讓資料庫不會出現部分資料列更新而部分資料列未更新這類不一致的狀況。 Access 提供 [串聯更新關聯欄位] 選項的支援,可以協助您避免這類問題。當您執行強迫參考完整性並選擇 [串聯更新關聯欄位] 選項,然後更新主索引鍵,Access 就會自動更新所有參考該主索引鍵的欄位。

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

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

  1. 在 [資料庫關聯圖] 視窗中,按一下所要變更之關聯的關聯線。選取關聯線時,線條會變粗。

  2. 按兩下關聯線。

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

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

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

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

附註: 由於您無法變更 [自動編號] 欄位中的值,因此如果主索引鍵是 [自動編號] 欄位,即使選取 [串聯更新關聯欄位] 核取方塊也不會有任何效果。

頁面頂端

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

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×