我有一个搜索查询,只需按一下按钮即可运行,并搜索子表单内容。它有5个课程选项,除非选择了课程,否则所有选项的默认值都为NULL。这使它更加用户友好。我正在尝试设置搜索代码以清除组合框(如果它为空),如果不是,则将其保留。我正在尝试下面的代码,它不起作用:
Like "*" & [Forms]![frmCDData]![cboDevelopment1] & "*" And iif([Forms]![frmCDData]![cboDevelopment1],= NULL, "", = [Forms]![frmCDData]![cboDevelopment1])
我收到错误,说上面的代码有错误的参数数量。是否有任何其他想法或方法来修复上述代码?
在没有IIF的情况下,代码本身就是这样的。
Like "*" & [Forms]![frmCDData]![cboDevelopment1] & "*"
答案 0 :(得分:0)
看起来你在= NULL之前有一个额外的逗号 试试这个,
Like "*" & [Forms]![frmCDData]![cboDevelopment1] & "*" And iif([Forms]![frmCDData]![cboDevelopment1]= NULL, "", [Forms]![frmCDData]![cboDevelopment1])
答案 1 :(得分:0)
在此部分iif([Forms]![frmCDData]![cboDevelopment1],= NULL
中,您的字段值与=null
之间有一个额外的逗号。这导致您的声明认为它正在接收4个参数而不是3个。
答案 2 :(得分:0)
虽然其他人已经指出了额外的逗号,但还有一些其他问题。你需要在“Null”这个词周围加上引号,因为它是一个字符串。此外,您不希望在最后一个参数中使用=
。
IIf([Forms].[frmCDData].[cboDevelopment1]="Null","",[Forms].[frmCDData].[cboDevelopment1])
答案 3 :(得分:0)
我想你想要
WHERE Table1.AText=[Forms]![frmCDData]![cboDevelopment1]
OR table1.AText =
IIf(Not IsNull([frmCDData]![cboDevelopment2]),[frmCDData]![cboDevelopment1],"")
根据您的说法,您正在运行查询。你有组合,所以文字应该是准确的,你不需要像。