2013-07-30 88 views
0

我有一個我想查詢的網站詳細信息列表 - 只返回那些數據丟失的地方。我想讓我的用戶能夠查詢數據庫僅返回選定組的信息。訪問2010參數查詢 - 與或

SELECT 
Lookup.Lookup_Name, 
Contacts.Address1, 
Contacts.Address2 
FROM 
Contacts INNER JOIN Lookup ON Contacts.Group_1 = Lookup.Lookup_Code 
WHERE (((Lookup.Lookup_Name)=[Site]) AND ((Contacts.Address1) Is Null)) OR (((Contacts.Address2) Is Null));  

但是,這並不返回所選站點的數據,而是從一切中返回數據。我認爲這是AND AND和相關括號的組合。我有更多的領域添加到列表,所以任何建議appriciated

回答

1

不幸的MS - 訪問是非常慷慨的圓括號。即使你不放置它們,MS-Access也會將它們放入 - 無論它們是否在邏輯上需要。

但也有在查詢一個邏輯錯誤: 你的第一個查找條件與AND只有第一個地址空條件和第二地址空條件鏈接簡單地由一個OR導致鏈接從全部行(所有站點)顯示空地址2字段的結果。

請嘗試以下版本:

SELECT 
Lookup.Lookup_Name, 
Contacts.Address1, 
Contacts.Address2, 
Contacts.further1, 
Contacts.further2, 
Contacts.further3 -- and so on ... 
FROM 
Contacts INNER JOIN Lookup ON Contacts.Group_1 = Lookup.Lookup_Code 
WHERE ((Lookup.Lookup_Name)=[Site]) 
AND ( ((Contacts.Address1) Is Null) 
    OR ((Contacts.Address2) Is Null) 
    OR ((Contacts.further1) Is Null) 
    OR ((Contacts.further2) Is Null) 
    OR ((Contacts.further3) Is Null) 
    ); 

目前我已經安裝在計算機上沒有MS-訪問,以便以上尚未被測試。我希望它能起作用。

+0

這很奇妙,謝謝你的解釋清楚。 – CatParky