有時候您可能會想要比較 Access 中的兩個數據表,並在其中一個數據表中找出另一個數據表中沒有對應記錄的記錄。 找出這類記錄的最簡單方法,是使用 [尋找不吻合資料查詢精靈]。 在精靈建立查詢後,您可以修改查詢的設計來新增或移除欄位,或是在兩個資料表之間新增連結 (以指出應包含相符值的欄位)。 您也可以自行建立查詢以尋找不吻合的記錄,而不使用精靈。
本文將說明如何開始和執行 [尋找不吻合資料查詢精靈]、如何修改精靈輸出內容,以及如何自行建立查詢以尋找不吻合的記錄。
本文內容
何時應搜尋不吻合的記錄?
以下是您可能會想比較兩份資料表及尋找不吻合記錄的兩種常見情況。 視您的情況而定,尋找不吻合的記錄可能是您需要優先採取的步驟。 本文僅涵蓋尋找不吻合記錄的相關資訊。
-
您使用一份資料表儲存一種項目 (如產品) 的資料,然後使用另一份資料表儲存該項目的相關動作資料 (如下訂單)。
例如,在 [北風] 資料庫範本中,產品的相關資料是儲存在 [產品] 資料表中,而每份訂單所包含產品的相關資料則儲存在 [訂單詳細資料] 資料表中。 由於 [產品] 資料表在設計上並沒有關於訂單的資料,因此您無法只查看 [產品] 資料表,就判斷出有哪些產品從未售出。 這項資訊也無法只查看 [訂單詳細資料] 資料表來判斷,因為 [訂單詳細資料] 資料表只包含已售出產品的相關資料。 您必須比較兩份資料表,才能判斷哪些產品從未售出。
如果您想要在第一份資料表中檢閱在第二份資料表中沒有對應動作的項目清單,就可以使用 [尋找不吻合資料查詢]。
-
您有兩份資料表,其中包含重疊、多餘或衝突的資訊,而您要將這兩份資料表合併成一份。
例如,假設您有一份名為「客戶」的資料表,以及另一份名為「用戶端」的資料表。 這兩份資料表幾乎完全相同,但其中一份資料表或兩份資料表都包含另一份資料表所沒有的記錄。 如果要合併這兩份資料表,您必須先判斷哪些記錄只儲存於其中的一份資料表。
如果這是您目前遇到的情況,本文所描述的方法十分有幫助,但是您可能還要繼續採取其他步驟。 您可以執行 [尋找不吻合資料查詢精靈] 找出不吻合的記錄,但如果您想要擷取合併的記錄集,則要使用得到的結果來建立聯集查詢。 如果您比較習慣撰寫結構化查詢語言 (SQL) 陳述式,也可以自行撰寫聯集查詢,而不使用 [尋找不吻合資料查詢精靈]。
通常,您可以透過在兩份或多份資料表中尋找重複資料的方式,來處理重疊、多餘或衝突資訊的問題。
如需聯集查詢的詳細資訊,或是尋找、隱藏或消除重複資料的詳細資訊,請按一下 [另請參閱] 小節中的連結。
附註: 本文中的範例是使用以 [北風] 資料庫範本所建立的資料庫。
如何設定 [北風]
-
按一下 [檔案] 索引標籤上的 [新增]。
-
視您的 Access 版本而定,您可以在 [搜尋] 方塊或左側窗格中搜尋 [北風],方法是按一下 [範本類別] 底下的 [本機範本]。
-
在 [本機範本] 底下,依序按一下 [北風 2007 範本] > [建立]。
-
依照 [北風貿易] 頁面上的指示 (在 [啟動畫面] 物件索引籤上) 開啟資料庫,然後關閉 [登入對話方塊] 視窗。
使用 [尋找不吻合資料查詢精靈] 比較兩份資料表
-
在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢精靈]。
-
在 [新增查詢] 對話方塊中按兩下 [尋找不吻合資料查詢精靈]。
-
在精靈的第一頁上,選取包含不吻合記錄的資料表,然後按一下 [下一步]。 例如,如果要查看從未售出的北風產品清單,請選取 [產品] 資料表。
-
在第二頁上,選取相關的資料表,然後按一下 [下一步]。 在這個範例中,請選取 [訂單詳細資料] 資料表。
-
在第三頁上,選取與資料表相關聯的欄位,按一下 [< = >],然後再按一下 [下一步]。 您只能從每份資料表中選擇一個欄位。 在這個範例中,請從 [產品] 資料表選取 [識別碼],並從 [訂單詳細資料] 資料表選擇 [產品識別碼]。 請檢閱 [符合的欄位] 方塊中的文字,確認相符的是正確的欄位。
請注意,由於內建於範本中的現有關聯性,[識別碼] 和 [產品識別碼] 欄位可能已經選取。
-
在第四頁上,按兩下您要在第一份資料表中查看的欄位,然後按一下 [下一步]。 在這個範例中,請選取 [識別碼] 和 [產品名稱] 欄位。
-
在第五頁上,您可以選擇檢視結果或修改查詢的設計。 在此範例中,請按一下 [檢視結果]。 接受查詢的建議名稱,然後按一下 [完成]。
您可能想要修改查詢的設計,以新增其他準則、變更排序順序,或是新增或移除欄位。 如需修改 [尋找不吻合資料查詢] 的詳細資訊,請閱讀下一節。或者,如需建立及修改查詢的更多一般資訊,請瀏覽請參閱小節中的連結。
建立及修改 [尋找不吻合資料查詢] 以依多個欄位比較
-
在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢精靈]。
-
在 [新增查詢] 對話方塊中按兩下 [尋找不吻合資料查詢精靈]。
-
在精靈的第一頁上,選取包含不吻合記錄的資料表,然後按一下 [下一步]。 例如,如果要查看從未售出的北風產品清單,請選取 [產品] 資料表。
-
在第二頁上,選取相關的資料表,然後按一下 [下一步]。 在這個範例中,請選取 [訂單詳細資料] 資料表。
-
在第三頁上,選取與資料表相關聯的欄位,按一下 [< = >],然後再按 [下一步]。 您只能從每份資料表中選擇一個欄位。 在這個範例中,請從 [產品] 資料表選取 [識別碼],並從 [訂單詳細資料] 資料表選擇 [產品識別碼]。 請檢閱 [符合的欄位] 方塊中的文字,確認相符的是正確的欄位。 您可以在完成精靈之後聯結剩餘的欄位。
請注意,由於內建於範本中的現有關聯性,[識別碼] 和 [產品識別碼] 欄位可能已經選取。
-
在第四頁上,按兩下您要在第一份資料表中查看的欄位,然後按一下 [下一步]。 在這個範例中,請選取 [識別碼] 和 [產品名稱] 欄位。
-
在第五頁上,依序按一下 [修改設計] > [完成]。
查詢隨即會在 [設計] 檢視中開啟。
-
請注意,在查詢設計格線中,兩份資料表會在第三頁所指定的欄位上聯結 (在本範例中為 [識別碼] 和 [產品識別碼])。 從第一份資料表 (即包含不吻合記錄的資料表) 中將欄位拖曳到第二份資料表,為剩餘的相關欄位配對建立聯結。 在此範例中,請從 [產品] 資料表將 [標價] 欄位拖曳到 [訂單詳細資料] 資料表的 [單價] 欄位。
-
按兩下聯結 (也就是連接欄位的線條),以顯示 [連接屬性] 對話方塊。 為每個聯結選擇包含 [產品] 資料表中所有記錄的選項,然後按一下 [確定]。
請注意,在查詢設計格線中,每個聯結的一端現在都有一個箭號。
1. 在 [標價] 與 [單價] 欄位之間建立聯結時,此聯結會限制這兩份資料表的輸出。 查詢結果只會包含兩份資料表中欄位內有相符資料的記錄。
2. 編輯連接屬性之後,聯結只會限制箭號指向的資料表。 箭號來源資料表中的所有記錄都會包含在查詢結果中。
附註: 請確認聯結上的所有箭號都指向相同的方向。
-
在包含相關聯記錄的資料表 (在此範例中是 [訂單詳細資料] 資料表) 上,按兩下聯結至第一份資料表的各個欄位,但在精靈第三頁上選擇的欄位 (在此範例中是 [產品識別碼] 欄位) 除外。 為這些欄位中的每個欄位清除 [顯示] 列中的核取方塊,然後在 [準則] 列中輸入 Is Null。
-
(選擇性) 將準則加入其他查詢欄位中,或是根據第一份資料表的值建立導出欄位。
-
在 [ 查詢設計] 索引 標籤的 [ 結果 ] 群組中,按兩下 [ 執行]。
查詢會傳回不屬於任何現有訂單的產品名稱。
自行建立查詢以尋找不吻合的記錄
-
在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢設計]。
-
按兩下含有不吻合記錄的數據表,然後按兩下具有相關記錄的數據表。
-
在查詢設計格線中,應該會有線條 (稱為聯結) 依相關聯的欄位連接這兩份資料表。 如果沒有出現聯結,請從第一份資料表 (包含不吻合記錄的資料表),將各個相關欄位拖曳到第二份資料表 (包含相關聯記錄的資料表),以建立聯結。
-
按兩下聯結以開啟 [連接屬性] 對話方塊。 針對每個聯結,選擇選項 2,然後按一下 [確定]。
在查詢設計格線中,聯結會變更,使其一端帶有箭號。
附註: 請確認所有聯結都指向同一個方向。 如果聯結指向不同方向,就不會執行查詢,而如果有任何聯結不是箭號,則可能不會執行查詢。 聯結應從包含不吻合記錄的資料表指向另一份資料表。
-
在包含不吻合記錄的資料表中,按兩下您要讓系統傳回查詢的欄位。
或者,為所有這些欄位輸入準則,或是建立導出欄位。
-
在包含相關聯記錄的資料表中,按兩下聯結到第一份資料表的各個欄位。 為這些欄位清除 [顯示] 列中的方塊,然後在 [準則] 列中輸入 Is Null。
-
在 [ 查詢設計] 索引 標籤的 [ 結果 ] 群組中,按兩下 [ 執行]。