|
原帖由 ergui771 于 2008-1-17 23:31 发表
IIf指令我在网上搜索到了like IIf(A=B,C,D),意思是如果A=B,则返回C值,否则返回D值,对么?
请问)not <>IIf(A=B,C,D)是什么意思啊?如果A=B,返回什么啊?
乱了 想了一晚上了不好意思
楼主的精神值得鼓励!
and的确是并列关系,是指要符合所有条件。对于
WHERE (((表1.产地) Like IIf(Forms!窗体1!Combo2="全部","*",IIf(Forms!窗体1!Combo2="其他","*",Forms!窗体1!Combo2)) And (表1.产地)<>IIf(Forms!窗体1!Combo2="其他","海南","1") And (表1.产地)<>IIf(Forms!窗体1!Combo2="其他","山东","1")))
这个查询条件,详细给你解释一下,你可以通过代入法进行理解:
1、假设用户在 Forms!窗体1!Combo2 中选择了"海南",下面橙色部分不成立,蓝色部分成立:
产地 like IIf(Forms!窗体1!Combo2="全部","*",IIf(Forms!窗体1!Combo2="其他","*",Forms!窗体1!Combo2)) And 产地<>IIf(Forms!窗体1!Combo2="其他","海南","1") And 产地<>IIf(Forms!窗体1!Combo2="其他","山东","1")))
去掉不成立的部分,可以理解成:
产地 like Forms!窗体1!Combo2 and 产地<> "1" and 产地<> "1"
即 产地 like "海南"and 产地<> "1" ,就是说将产地好像"海南"两个字,但不是"1"这个字的记录选出来,因为你的产地不可能是"1"这个字,所以结果就是选出产地是海南的来
2、假设用户在 Forms!窗体1!Combo2 中选择了"全部",下面橙色部分不成立,蓝色部分成立:
产地 like IIf(Forms!窗体1!Combo2="全部","*",IIf(Forms!窗体1!Combo2="其他","*",Forms!窗体1!Combo2)) And 产地<>IIf(Forms!窗体1!Combo2="其他","海南","1") And 产地<>IIf(Forms!窗体1!Combo2="其他","山东","1")))
去掉不成立的部分,可以理解成:
产地 like "*" and 产地<> "1" and 产地<> "1"
即 产地 like "*" and 产地<> "1",也就是说将除了产地等于"1"这个的字的记录全部选出来,因为你的产地不可能是"1"这个字,所以结果就是全部记录
3、假设用户在 Forms!窗体1!Combo2 中选择了"其他",下面橙色部分不成立,蓝色部分成立:
产地 like IIf(Forms!窗体1!Combo2="全部","*",IIf(Forms!窗体1!Combo2="其他","*",Forms!窗体1!Combo2)) And 产地<>IIf(Forms!窗体1!Combo2="其他","海南","1") And 产地<>IIf(Forms!窗体1!Combo2="其他","山东","1")))
去掉不成立的部分,可以理解成:
产地 like "*" and 产地<>"海南" and 产地<>"山东"
那么这个条件也就是你指的“其他”,即将所有产地不等于海南和山东的记录都找出来
在这里由于你要求比较特殊,多了一个“其他”的选项,所以才会弄得这么复杂了。如果没有“其他”这个选项的话,条件就变成这么简单了:
产地 Like IIf(Forms!窗体1!Combo2="全部","*",Forms!窗体1!Combo2) |
|