【发布时间】:2017-08-16 14:15:11
【问题描述】:
我在 MS Access VBA 中有一个查询
Dim search As String
"SELECT Identifier
FROM tblProjects
WHERE Identifier
LIKE '*" & search & "*' " & _
"OR Title LIKE '*" & search & "*' " & _
"OR Regions LIKE '*" & search & "*' " & _
"OR ProjectDate LIKE '*" & search & "*' " & _
(etc)
有没有办法缩短这个查询以便它使用一个 LIKE 运算符?如果它们包含搜索值,我几乎想搜索每一列。请记住,这是使用 MS Access 数据库。
【问题讨论】:
-
您可以将所有文本字段选择到临时结果中的串联字段中,然后在临时结果集上执行
LIKE。 -
连接值(标识符 & 标题 & 区域 &projectDate...),例如 'search' 但这可能会更慢;
-
[ABC]+[XYZ]将匹配*CX*不作为一个谨慎的值存在,您需要填充分隔符来修复与一个很好的可优化 OR 系列相比非常可怕的问题。 -
您可以添加一个查找字段,并查看使用数据宏将连接值添加到该字段,更新/删除等,因为这可能会使查询更快一些,因为您可以添加索引到场。我赞成单独的 OR 方法。
标签: sql database vba ms-access