【问题标题】:MS-Access How to use iif in query criteriaMS-Access 如何在查询条件中使用 iif
【发布时间】:2019-10-29 22:16:45
【问题描述】:

我有一个包含文本框的搜索表单,我想根据大于在文本框中输入的值过滤字段,但在文本框为空时返回所有字段。 为此,我在查询条件中编写了以下代码,但出现错误

IIf(IsNull(TextBox); TheField; >TextBox))

【问题讨论】:

  • 你遇到了什么错误?

标签: sql ms-access


【解决方案1】:

当在 MS Access 的查询生成器中指定为特定字段的条件时,您输入的表达式可能会被解释为以下 where 子句:

where TheField = IIf(IsNull(TextBox), TheField, TheField > TextBox))

如果TheField 不包含布尔值,这可能会产生数据类型不匹配错误,因为else 分支将产生where 子句:

where TheField = (TheField > TextBox)

这将是以下之一:

where TheField = True
where TheField = False

相反,我建议将以下内容指定为您的 SQL where 子句:

where Forms!YourFormName!YourTextBox is null or TheField > Forms!YourFormName!YourTextBox

【讨论】:

    【解决方案2】:

    我会推荐:

    where (textbox is null or thefield > textbox)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多