【发布时间】:2019-10-29 22:16:45
【问题描述】:
我有一个包含文本框的搜索表单,我想根据大于在文本框中输入的值过滤字段,但在文本框为空时返回所有字段。 为此,我在查询条件中编写了以下代码,但出现错误
IIf(IsNull(TextBox); TheField; >TextBox))
【问题讨论】:
-
你遇到了什么错误?
我有一个包含文本框的搜索表单,我想根据大于在文本框中输入的值过滤字段,但在文本框为空时返回所有字段。 为此,我在查询条件中编写了以下代码,但出现错误
IIf(IsNull(TextBox); TheField; >TextBox))
【问题讨论】:
当在 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
【讨论】:
我会推荐:
where (textbox is null or thefield > textbox)
【讨论】: