0

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

code并且code2是搜索表单中的组合框,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当等于code或时,我正在尝试从表中获取条目(搜索结果)code2

4

2 回答 2

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)
于 2012-04-23T13:36:58.823 回答
0

您可以使用 IsNull 函数缩短它:

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

对于其他领域也是如此。如果组合框为空,这将返回表字段值,该值始终等于自身。

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

于 2012-04-23T14:09:33.520 回答