给定一个查询,其条件是在访问中使用文本框。它工作正常。
Like IIf(IsNull([forms]![f_form]![txt_box]),"*",[forms]![f_form]![txt_box])
当单元格具有值时,上述标准可以正常工作。但是,我搜索的表中的很多单元格都是null。
我最好的和逻辑镜头是:
Like IIf(IsNull([forms]![f_form]![txt_box]),"*",[forms]![f_form]![txt_box])
OR Like IIf(IsNull([forms]![f_form]![txt_box]),Is Null,[forms]![f_form]![txt_box])
然而,这不起作用。
如果我只是使用"或者是Null"然后,即使我进行特定搜索,它也会返回单元格为空的所有记录。
有什么建议吗?
BR,Emil。
编辑:迄今为止的解决方案是放入" - "在所有空单元格中,但当用户将单元格留空(Null)时,记录将永远不会显示在过滤器中(查询)。因此,我不喜欢这个解决方案。
答案 0 :(得分:1)
我的意思是这个标准:
bool DoMerge =false//this is global and static
if (Session["currentDataSet"] == null)
{
Session["currentDataSet"] = SqlHelper.ExecuteDataset(sCon, "Ps_Quiz_GetQsns", Int32.Parse(ddlQuestionTypeName.SelectedValue), Int32.Parse(ddlQuestionSubTypeName.SelectedValue)); ;
}
QuestionsCollection = (DataSet)(Session["currentDataSet"]);
if (DoMerge) QuestionsCollection.Merge(SqlHelper.ExecuteDataset(sCon, "Ps_Quiz_GetQsns",quiz);
DoMerge = true;
Session["currentDataSet"] = QuestionsCollection;
GridViewAllQuestions.DataSource = QuestionsCollection;
GridViewAllQuestions.DataBind()
或者如果你想支持通配符搜索(毕竟):
[Forms]![f_form]![txt_box] OR ([Forms]![f_form]![txt_box] Is Null)
答案 1 :(得分:1)
我建议使用NZ而不是IIF和IsNull组合,
SearchField与Nz一样([表格]![f_form]![txt_box],' *')
你认为txt_Box可以有零长度字符串而不是Null,或者可能有一个可以存在吗?如果是这样,你可以试试
SearchField就像iif([forms]![f_form]![txt_box] ='',' ',nz([forms]![f_form]! [txt_box]' &#39)