2012-03-01 41 views
0

在当天早些时候,我想出了以下查询。搜索包含字符串的字段Access 07

SELECT DISTINCT Visits.KHA_ID, Visits.totalCharges 
    FROM (Visits INNER JOIN (ICDTable INNER JOIN ICDVisitsJxn ON ICDTable.ICD9ID = ICDVisitsJxn.ICD_IDFK) ON Visits.ID = ICDVisitsJxn.VisitsIDFK) 
INNER JOIN (ICDTable AS ICDTable_1 
INNER JOIN ICDVisitsJxn AS ICDVisitsJxn_1 ON ICDTable_1.ICD9ID = ICDVisitsJxn_1.ICD_IDFK) ON Visits.ID = ICDVisitsJxn_1.VisitsIDFK 
    WHERE (((ICDTable.Description) 
Like "*[enter term]*") AND ((ICDTable_1.Description) Like "*[enter another term]*")); 

这是我想要的方式。但是,如果不必在用户可以搜索字符串的相应字段中键入确切的文本,我宁愿选择。这将类似于Like *这里*构造Access使用的词。我一直硬编码子字符串。任何人都知道如何以编程方式做到这一点。

+0

这里的斜体词应该被asteris包围KS。 – wootscootinboogie 2012-03-01 19:50:20

+0

感谢您的提示。 – wootscootinboogie 2012-03-01 20:18:04

+1

保留字规则的例外是单词前缀为表名或别名的位置,在这种情况下,不需要方括号。 – Fionnuala 2012-03-01 20:29:11

回答

3

如果您在Access中运行这个,只需添加*:

WHERE (((ICDTable.Description) Like "*" & [enter term] & "*") 
AND ((ICDTable_1.Description) Like "*" & [enter another term] & "*")); 

你可以参考一个控制窗体上:

WHERE (((ICDTable.Description) Like "*" & Forms!MyForm!FirstTerm & "*") 
AND ((ICDTable_1.Description) Like "*" & Forms!MyForm!SecondTerm & "*")); 
+0

我试过了,它返回了所有记录。让我看看我做错了什么。 – wootscootinboogie 2012-03-01 19:56:30

+1

如果你没有输入一个术语,它会返回所有记录,因为你有'WHERE东西就像*' – Fionnuala 2012-03-01 19:58:16

相关问题