MS Access SQL查询语句

问题描述:

此声明需要获得一些电子邮件列表,供一些朋友志愿使用。我需要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 

谢谢你的帮忙!

您的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。

AND [Email] <> NULL 

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

AND [Email] IS NOT NULL 
+0

仍然无法正常工作。它给了我空值。也许是因为or和子句按顺序排列的方式。 – safron6