我有一个搜索页面,它根据指定的标准返回结果,当每个标准为 OR 时,这可以正常工作,但是当我使用 AND 时,它返回错误或没有结果。例如,搜索条件可能是...
A. Author = ""
B. Subject = ""
C. Keyword = ""
D. Dated = ""
代码:
SELECT *
FROM Table
WHERE Author = '" & strAuthor & "'
AND Subject = '" & strSubject & "'
AND Keyword = '" & strKeyword & "'
AND Dated = '" & strDated & "' "
这里我只使用了 4 个参数,而实际上还有很多。但是这个例子应该解释这个问题......为了使这项工作我需要更具体,例如“如果 A 和 B”或“B、C 和 D”,但使用任何空白或 NULL 参数都不起作用。
现在我可以使用条件语句来写入标准,例如......
SELECT *
FROM Table
WHERE
if strAuthor <> "" then
Author = '" & strAuthor & "'
end if
if strSubject <> "" then
AND Subject = '" & strSubject & "'
end if
依此类推,除了SELECT
像这样编写字符串不起作用之外,只会产生错误,因为选择字符串不能包含其他代码(这是我的发现)。
如果选项只有几个,我可以为每个组合编写单独的选择字符串,但是有超过 10 种不同的标准需要超过 3,628,800 种组合!
有解决方案吗?