是否有更好的方法在Access VBA中编写where子句

时间:2019-05-27 14:26:04

标签: ms-access

这是一个小脑筋急转弯!

我有一个查询,该查询至少包含3个不同的where子句。我想知道是否有更简单的方法来做到这一点,而不是编写详尽的if语句来测试每个可能的结果!

这3个子句是从具有至少3个不同值(包括“ ALL”选项)的下拉菜单中选择的。

我希望你们开始关注我的问题...

所以,如果我有:

req_data="$(sed -En 's%.*confirmation ID=\\"'$variable'-(.+)\\" status.*%\1%p' /tmp/log)"

USER决定选择以下内容:

  • combo1:全部
  • combo2:项目(不是全部的选项)
  • combo3:项目(不是全部的选项)

所以现在有一种方法可以重写我的查询:

SELECT * FROM tabe1 WHERE col1 = combo1Value AND col2 = combo2Value AND col3 = combo3Value

或者我别无选择,只能写一个大的if语句?

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

WHERE 
    col1 = IIf([combo1value] = "*", [col1], [combo1value]) AND 
    col2 = IIf([combo2value] = "*", [col2], [combo2value]) AND 
    col3 = IIf([combo3value] = "*", [col3], [combo3value])