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