2012-04-23 75 views
0

搜索查询中的这个表达式没有给出任何结果。ms表达式访问

codecode2是搜索表单中的组合框,CS_Code是表列。

[CS_Code]=([Forms]![Search Form]![code] Or 
[Forms]![Search Form]![code2]) Or 
([Forms]![Search Form]![code] Is Null Or 
    [Forms]![Search Form]![code2] Is Null) 

我想从表项(搜索结果)时CS_code等于codecode2

回答

2

您需要重复的比较:

WHERE ([CS_Code]=([Forms]![Search Form]![code] 
     Or [CS_Code]=[Forms]![Search Form]![code2]) 
Or ([Forms]![Search Form]![code] Is Null 
     Or [Forms]![Search Form]![code2] Is Null) 
0

您可以缩短这个使用IsNull功能:

WHERE IsNull(([Forms]![Search Form]![code],[CS_Code]) = [CS_Code] 

和其他领域类似。如果组合框为空,则将返回表格字段值,该值始终等于自身。

如果您正在为多个组合框执行此操作,则可能是时候退后一步并查看您想要执行的操作。一种可能性是编写一个VBA例程来遍历表单上的所有组合框。