如何修改Microsoft Access查询代码以支持单条件搜索留空另一项
修改后的查询代码
SELECT C1.ConsultID, C1.Consult_No, C1.Consult_Type, C1.Intake_Date, C1.Adult_Peds, C1.Title, C1.ConsultSummary FROM ([Intersection Query Pre-Reasons] AS C1 LEFT JOIN tblConsultReasons AS C2 ON C1.ConsultID = C2.ConsultID) LEFT JOIN tblConsultReasons AS C3 ON C2.ConsultID = C3.ConsultID WHERE ( (C2.Reason = Forms!FrmReasonsCriteria!Reason1 AND C2.ReasonType = "Discerned") OR Len(Forms!FrmReasonsCriteria!Reason1 & "") = 0 ) AND ( (C3.Reason = Forms!FrmReasonsCriteria!Reason2 AND C3.ReasonType = "Discerned") OR Len(Forms!FrmReasonsCriteria!Reason2 & "") = 0 );
关键改动说明
- 针对每个原因输入框,添加了空值判断逻辑:
Len(Forms!FrmReasonsCriteria!ReasonX & "") = 0,这个判断会同时覆盖输入框为Null或空字符串的情况。 - 当某个输入框留空时,对应的条件会自动成立,不需要强制匹配原因;只有当输入框有内容时,才会要求对应的
Reason和ReasonType匹配。 - 保留了原查询的核心逻辑:当两个原因都输入时,仍然返回同时满足两个
Discerned原因的记录。
内容的提问来源于stack exchange,提问作者jim
相关产品推荐
相关产品推荐

