MS Access - 不匹配查詢嚮導



在 Access 中,還有一個非常有用的嚮導,那就是查詢不匹配記錄查詢嚮導。查詢不匹配記錄查詢嚮導建立一個查詢,用於查詢一個表中與另一個表中沒有相關記錄的記錄或行。

正如我們已經討論過如何在查詢中將資料連線在一起,以及大多數查詢是如何查詢兩個或多個表之間的匹配項。

Matched
  • 這是 Access 中的預設連線,例如,如果我們使用兩個表tblCustomerstblOrders設計一個查詢,並透過 CustomerIDs 連線這兩個表,則此查詢將僅返回匹配的結果。換句話說,就是那些下過訂單的客戶。

  • 有時我們不想看到匹配項,例如,我們可能不想在我們的資料庫中看到任何客戶——那些尚未下過訂單的客戶。

Not Placed Orders
  • 這正是查詢不匹配記錄查詢所做的。

這種型別的查詢還有許多其他可能的用途。

在我們的資料庫中,我們可以用它來檢視哪些作者尚未撰寫專案,或者你可以用它來檢視哪些員工尚未選擇任何醫療福利。現在讓我們開啟包含CustomersOrders表的資料庫;轉到“建立”選項卡,然後單擊“查詢嚮導”按鈕。

選擇查詢不匹配記錄查詢嚮導並單擊確定

Unmatched

在這種情況下,我們將查詢那些尚未下訂單的客戶。在第一個螢幕中,它詢問哪個表或查詢包含您想要在查詢結果中顯示的記錄。

我們現在需要來自tblCustomers的客戶列表。選擇該選項並單擊下一步

Customers Table

在接下來的螢幕中,您需要指定哪個表或查詢包含相關記錄。換句話說,您將使用哪個表與第一個表進行比較。為此,我們需要找到那些沒有下訂單的客戶。我們需要選擇包含所有訂單資訊的表——tblOrders。現在,單擊下一步

TblOrders

在接下來的螢幕中,您需要指定哪個資訊同時存在於兩個表中。

  • 這通常是某種主鍵、外部索引鍵、欄位或關係。
  • 如果您的資料庫中存在現有關係,Access 將為您選擇並匹配這些欄位。
  • 但是,如果您還有其他可以連線在一起的欄位,包含類似資訊,您也可以在這裡選擇它們。

在這裡,我們預設情況下在“tblCustomers”中的欄位和“tblOrders”中的欄位中都選擇了 CustID。現在,單擊下一步

CustID

在接下來的螢幕中,您可以選擇要顯示在查詢結果中的欄位。

Selected Files

現在讓我們選擇所有可用的欄位,然後單擊雙箭頭。這會將所有可用欄位移動到已選欄位區域。現在,單擊下一步

First Order

最後一個螢幕允許您為查詢選擇一個名稱,然後單擊完成

Without Matching

在這裡,我們列出了一個客戶,該客戶尚未向我們下訂單。

Customer Listed

您還可以檢視該查詢是如何建立的。為此,您需要返回到設計檢視

Is Null

此嚮導在 tblCustomer 和 tblOrders 之間建立了一個外部連線,並且將Is Null條件新增到來自 tblORders 的 CustID。這是為了排除某些記錄。在這種情況下,它是那些下過訂單或在 tblOrders 中有相關資訊的客戶。

廣告