資料表關聯性導覽

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

理想的資料庫設計的其中一個目標,是要避免資料的重複性 (資料重複)。如要達成這個目標,必須將資料分割成許多主題的資料表,以便讓每項記錄只呈現一次。然後,您可以提供一些方法,讓 Microsoft Office Access 2007 可以重新組合這些分割的資訊,例如,將共用的欄位放入幾個相關的資料表中。不過,為了能夠正確進行這個步驟,必須先瞭解資料表之間的關聯,才能在 Office Access 2007 資料庫中指定這些關聯。

本文內容

簡介

資料表關聯的類型

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

瞭解參考完整性

檢視資料表關聯

建立資料表關聯

刪除資料表關聯

變更資料表關聯

強迫參考完整性

簡介

為資料庫中的每一個主題建立相對的資料表之後,您必須提供一些方法,讓 Office Access 2007 能在必要時重新組合資訊,例如,在相關的資料表中放置一些共同欄位,並在資料表之間定義資料表的關聯性,如此才能夠建立可以同時顯示包括數個資料表資訊的查詢、表單及報表。例如,下表包含了從數個資料表取得的資訊:

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

1. 這份表單的資訊來自客戶資料表...

2. ... 訂單資料表 ...

3. ... 產品資料表 ...

4. ... 以及訂單詳細資料表。

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

在前例中,資料表內各欄位必須經過協調,以便顯示同一筆訂單的相關資訊,而這項協調作業就必須利用資料表關聯性才能做到。資料表關聯性是透過索引鍵欄位內相符的資料來運作,索引鍵欄位通常是在兩個資料表內具有相同名稱的欄位。在大多數情況下,這些相符的欄位是一個資料表中的主索引鍵 (它提供每筆記錄的唯一識別碼),以及另一個資料表中的外部索引鍵。例如,在 [員工] 資料表和 [訂單] 資料表的 [員工識別碼] 欄位之間建立資料表關聯性,可以讓員工與自己所負責的訂單產生關聯。

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

1. 兩個資料表中都會出現 [員工識別碼],當做主索引鍵 ...

2. ... 以及外部索引鍵。

頁面頂端

資料表關聯性的類型

資料表關聯性有三種。

  • 一對多關聯

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

    若要在資料庫設計中表示一對多關聯,請從關聯中的「一」的一端取得主索引鍵,再將這個主索引鍵當做額外的一個或多個欄位,加入關聯中的「多」的一端資料表。例如,在這個案例中,將 [客戶] 資料表中的「識別碼」欄位加入到 [訂單] 資料表中當成新欄位,並將其更名為「客戶識別碼」。如此 Access 就可以使用 [訂單] 資料表中的 [客戶識別碼] 編號尋找每一筆訂單的正確客戶。

  • 多對多關聯

    以 [產品] 資料表和 [訂單] 資料表之間的關聯性為例,一個單筆訂單可以包含多項產品;另一方面,單項產品也可以出現在許多訂單上。因此,[訂單] 資料表的每一筆記錄,在 [產品] 資料表中都可以包含許多筆記錄;而 [產品] 資料表的每一筆記錄,在 [訂單] 資料表中也都可以有許多筆記錄。因為任何產品都可以有許多訂單,而且任何訂單也都可以有許多產品,所以這種關聯就稱為多對多關聯。請注意,如果要偵測現有資料表之間的多對多關聯,必須同時考量相關聯的兩方。

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

  • 一對一關聯

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

頁面頂端

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

您可以使用 [資料庫關聯圖] 視窗中,或從 [欄位清單] 窗格中拖曳欄位明確建立資料表關聯。Office Access 2007使用至如何聯結的資料表,當您需要在資料庫物件中使用它們的資料表關聯。為什麼您應該建立資料表關聯建立其他的資料庫物件,例如表單、 查詢、 巨集和報表之前的幾個原因有。

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

    若要使用到多個資料表中的記錄,通常必須建立連接數個資料表的查詢。查詢的方式是以第一個資料表的主索引鍵欄位值比對第二個資料表的外部索引鍵欄位值。例如,若要傳回列出每位客戶所有訂單的資料列,就必須建立根據 [客戶識字碼] 欄位連接 [客戶] 資料表與 [訂單] 資料表的查詢。您可以在 [資料庫關聯圖] 視窗中手動指定要連接的欄位。如果資料表之間已經建立了關聯,Office Access 2007 便會依據現有的資料表關聯提供預設的連接。另外,若您使用某個查詢精靈,Access 便會以所定義的資料表關聯取得資訊,並依據這些資訊呈現關聯中的選擇,且在屬性設定中填入適當的預設值。

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

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

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

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

頁面頂端

瞭解參考完整性

設計資料庫時,您會將所有資訊分成許多主題的資料表,以減少資料重複性。然後透過在關聯資料表中放入共同欄位的方式,提供一些方法,讓 Office Access 2007 可以重新組合這些資料。例如,若要表示一對多關聯,請從關聯中的「一」方資料表取得主索引鍵,再將它當做額外欄位加入「多」方的資料表。重新組合資料時,Access 會以「多」方資料表中的值來查看「一」方資料表中對應的值。如此,「多」方資料表中的值便會參考「一」方資料表中對應的值。

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

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

您啟用此資料表關聯的強迫參考完整性 (如需逐步指示,請參閱強制執行參考完整性)。之後,強制執行存取拒絕違反該資料表關聯的參考完整性所有作業。這表示 Access 將拒絕變更的參照,並移除參照的目標的刪除目標這兩種更新。不過,則可能您可能需要完全有效有 [訂單] 資料表中的訂單貨運變更主索引鍵。這種情況下,您真的需要適用於 Access 自動更新所有受影響的資料列,做為單一作業的一部分。如此一來,可確保存取,更新已完成的完整,好讓資料庫已不在不一致的狀態,某些更新的資料行與一些不。因此 Access 支援 [串聯更新關聯欄位] 選項。當您強迫參考完整性,並選擇 [串聯更新關聯欄位] 選項,並且然後更新主索引鍵時,Access 會自動更新所有參照的主索引鍵的欄位。

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

頁面頂端

檢視資料表關聯性

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

開啟資料庫關聯圖視窗

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

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

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

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

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

    如需 [顯示隱藏物件] 選項的詳細資訊,請參閱功能窗格導覽一文。

資料庫關聯圖視窗

1. 主索引鍵

2. 此線表示關聯

3. 外部索引鍵

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

當 [資料庫關聯圖] 視窗在作用中時,您可以在屬於 Microsoft Office Fluent 使用者介面 一部分的功能區上,選擇下列命令:

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

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

  • 清除版面配置    移除 [資料庫關聯圖] 視窗中顯示的所有資料表與關聯。請注意,這個命令只會隱藏資料表和關聯,並沒有真的刪除它們。

  • 關聯性報表    建立一份顯示資料庫中資料表和關聯的報表,這份報表只會顯示 [資料庫關聯圖] 視窗中未隱藏的資料表和關聯。

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

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

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

  • 直接關聯    在 [資料庫關聯圖] 視窗中顯示選取資料表的所有關聯與相關的資料表,包括未顯示的關聯與相關的資料表。

  • 所有關聯   在您的資料庫中的 [資料庫關聯圖] 視窗中顯示所有關聯與關聯的資料表。請注意,(已選取的隱藏] 核取方塊在資料表的 [屬性] 對話方塊中的表格) 的隱藏的資料表和及其關聯將不會顯示除非已在 [導覽選項] 對話方塊中選取顯示隱藏的資料表。

    如需有關 [顯示隱藏的表格] 選項的詳細資訊,請參閱[功能窗格的指南

  • 關閉視窗    關閉 [資料庫關聯圖] 視窗。如果您對 [資料庫關聯圖] 視窗中的版面配置有任何的變更,系統會詢問您是否要儲存變更。

頁面頂端

建立資料表關聯性

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

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

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

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

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

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

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

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

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

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

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

  8. 按一下 [建立]

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

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

附註: 

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

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

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

在Office Access 2007,您可以透過拖曳 [欄位清單] 窗格的 [資料工作表檢視] 中開啟現有的資料表新增欄位。[欄位清單] 窗格會顯示在相關資料表中可用的欄位及也] 欄位在其他資料表中可用。當您從 [其他] (不相關) 的資料表中拖曳欄位,然後完成 [查閱精靈時,新的一對多關聯會自動建立 [欄位清單] 窗格中的資料表之間拖曳欄位的資料表。此關聯,建立的存取權,不會依預設強迫參考完整性。若要強迫參考完整性,您必須編輯關聯性。請參閱變更資料表關聯的詳細資訊。

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

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

  3. 在 [功能窗格] 中,以滑鼠右鍵按一下要新增欄位並建立關聯性的資料表,然後按一下快顯功能表上的 [資料工作表檢視]

開啟 [欄位清單] 窗格

  • 在 [資料工作表] 索引標籤的 [欄位與欄] 群組中,按一下 [新增現有欄位]。

    Access 功能區影像

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

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

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

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

  1. 在 [資料工作表] 索引標籤的 [欄位與欄] 群組中,按一下 [新增現有欄位]。

    Access 功能區影像

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

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

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

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

    [查閱精靈] 隨即啟動。

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

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

當您從 [其他] (不相關) 的資料表中拖曳欄位,然後完成 [查閱精靈時,新的一對多關聯會自動建立欄位清單中的資料表之間拖曳欄位的資料表。此關聯,建立的存取權,不會依預設強迫參考完整性。若要強迫參考完整性,您必須編輯關聯性。請參閱變更資料表關聯的詳細資訊。

頁面頂端

刪除資料表關聯

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

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

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

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

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

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

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

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

  2. 按 DELETE 鍵。

    -或-

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

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

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

頁面頂端

變更資料表關聯性

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

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

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

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

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

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

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

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

如需 [顯示隱藏物件] 選項的詳細資訊,請參閱功能窗格導覽一文。

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

  2. 按兩下關聯線。

    -或-

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

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

    [編輯關聯] 對話方塊

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

    [編輯關聯] 對話方塊可讓您變更資料表關聯。具體來說,您可以變更的資料表或查詢,兩邊的關聯,或在任一側的欄位。您也可以設定連接類型,或強迫參考完整性,並選擇串聯選項。如需連接類型,以及如何將其設定的詳細資訊,請參閱設定連接類型] 區段。如需有關如何強迫參考完整性,然後選擇 [串聯選項的詳細資訊,請參閱 [強制執行參考完整性] 區段。

設定連接類型

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

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

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

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

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

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

設定連接類型

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

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

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

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

選擇

關聯式連接

左資料表

右資料表

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

內部連接

相符的資料列

相符的資料列

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

左外部連接

所有的資料列

相符的資料列

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

右外部連接

相符的資料列

所有的資料列

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

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

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

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

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

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

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

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

如需 [顯示隱藏物件] 選項的詳細資訊,請參閱功能窗格導覽一文。

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

  2. 按兩下關聯線。

    -或-

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

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

  3. 按一下 [連接類型]

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

    [連接屬性] 對話方塊

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

頁面頂端

強迫參考完整性

使用參考完整性的目的是,若要避免段落遺留字串的記錄,並保持參考的同步處理,讓您沒有安裝任何參照不存在其他記錄的記錄。您啟用此資料表關聯的強迫參考完整性。之後,強制執行存取拒絕違反該資料表關聯的參考完整性所有作業。Access 會拒絕變更的參照,以及移除參照的目標的刪除目標的更新。若要讓所有相關的資料列會相應地變更傳播參考的更新和刪除的存取權,請參閱設定串聯選項

開啟或關閉參考完整性

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

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

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

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

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

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

如需 [顯示隱藏物件] 選項的詳細資訊,請參閱功能窗格導覽一文。

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

  2. 按兩下關聯線。

    -或-

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

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

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

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

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

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

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

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

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

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

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

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

設定串聯選項

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

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

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

  1. 按一下 [Microsoft Office 按鈕] Office 按鈕影像 ,然後按一下 [開啟舊檔]。

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

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

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

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

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

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

如需有關 [顯示隱藏的物件] 選項的詳細資訊,請參閱[功能窗格的指南

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

  2. 按兩下關聯線。

    -或-

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

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

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

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

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

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

頁面頂端

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

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×