2014-09-11 45 views
0

我遇到了一些逻辑问题。如果X为TRUE则显示记录关于其他值

我有一个列表(Name, Address etc)和三个recNewsLetter, recAGM and recPhoneCall每个Yes/Nocheckbox填充。

我有三个复选框Receive Newsletter, Receive AGM Info & To Phone的另一种形式。我正在寻找能够在表单中选择其中一个复选框的查询,并且将显示该复选框为真的所有记录,而不管其他哪些复选框为真。

例如,我想查看recNewsletter为true的所有记录,而不管其他人是否为true。如果recAGM为真,则相同;无论recNewsLetterrecPhonecall的状态如何,我都希望看到所有这些记录。

我的查询只显示确切组合存在的记录。例如,如果recNewsletter是真实的(例如,表单上的复选框被打勾),它将只显示那些记录为真,其他记录为假的记录。如果recNewsletter & recAGM为真,那么它将只显示记录,它们都是真实的,而另一个(recPhoneCall)为假。你可能已经猜到了,我的SQL基本上是一个'当recNewsLetter和recAGM和recPhoneCall'的时候。例如,我会显示所有通讯记录,而不管AGM或电话呼叫的值如何。

这是代码:

SELECT tblOrganisations.ID, tblOrganisations.OrgName 
FROM tblOrganisations 
WHERE (((tblOrganisations.recNewsLetter) = 
[Forms]![frmPrintOrgLabels].[ReceiveNewsletter])) And 
(((tblOrganisations.recAGM) = [Forms]![frmPrintOrgLabels].[ReceiveAGMInfo])) And 
(((tblOrganisations.recPhoneCall)=[Forms]![frmPrintOrgLabels].[ToPhone])); 

任何帮助,不胜感激!

[R

+0

你能告诉你的代码吗? – Mureinik 2014-09-11 05:15:56

+0

是不是有一个原因,你不只是修改SQL来只应用你想要的标准?例如SELECT ... WHERE recAGM = True。如果你想要相互排斥的结果,你是否有3个复选框作为组的一部分,所以当组更改(即用户单击复选框)时,后面的代码会修改查询的WHERE条件? – maxhugen 2014-09-11 12:17:02

回答

0

据我可以从你的描述说,你需要像

WHERE (

(tblOrganisations.recNewsLetter and [Forms]![frmPrintOrgLabels].[ReceiveNewsletter]) 

OR 
(tblOrganisations.recAGM and [Forms]![frmPrintOrgLabels].[ReceiveAGMInfo]) 

OR 
(tblOrganisations.recPhoneCall and [Forms]![frmPrintOrgLabels].[ToPhone]) 

) 
相关问题