2015-10-17 207 views
0

此聲明需要獲得一些電子郵件列表,供一些朋友志願使用。我需要WHERE子句從複選框列表中僅返回帶有電子郵件的志願者。以下代碼僅在選中IsVolunteer複選框並選中了電子郵件時才起作用。 SQL語句有什麼問題?MS Access SQL查詢語句

所以結果應該是...... Bill Turner ... [email protected] ...並將這些選中的志願者項目顯示在表單中重新查詢。只有那些有電子郵件的人才應該在這個視圖中。

If Abs(Me.hasEmailCkb.Value) = 1 And Abs(Me.CheckIsVol.Value) = 1 Then 
VolToEMail = "Select * from [Members] where ([Food] = true Or [Setup] = true Or [Carpool] = true Or [Mail] = true AND [Email] <> NULL) Order By [LName] ASC" 
Me.Members_subform.Form.RecordSource = VolToEMail 

謝謝你的幫忙!

回答

1

您的AND之前需要括號

Select * 
from [Members] 
where ([Food] = true Or [Setup] = true Or [Carpool] = true Or [Mail] = true) AND 
     ([Email] IS NOT NULL) 
Order By [LName] ASC; 

注意<> NULL應該是IS NOT NULL<> NULL將始終返回NULL,將其視爲false。

0
AND [Email] <> NULL 

這是行不通的。您需要使用:

AND [Email] IS NOT NULL 
+0

仍然無法正常工作。它給了我空值。也許是因爲or和子句按順序排列的方式。 – safron6