1

我有一个多字段表单并使用它来检索表的记录。如果字段中没有用户输入,我想允许相应列的“*”和空值,否则用户输入。

我试过

Like IIf([Forms]![frm_searchForm]![Titel]="" Or IsNull([Forms]![frm_searchForm]![Titel]);Like "*" Or Is Null;[Forms]![frm_searchForm]![Titel])

Like IIf(IsEmpty([Forms]![frm_searchForm]![Titel]);Like "*" Or Is Null;[Forms]![frm_searchForm]![Titel])

但在这两种情况下,IIf 函数总是触发 else 表达式。如何检查表单中的字段是否为空?没有VB,这甚至可能吗?

谢谢

4

1 回答 1

1

AFAICT,当[Forms]![frm_searchForm]![Titel]包含一个值时,您只需要某些字段包含该值的那些行。

但是,如果[Forms]![frm_searchForm]![Titel]是 Null 或空字符串,您希望检索所有行。

如果这是正确的,请尝试WHERE类似以下的子句:

WHERE
       Len([Forms]![frm_searchForm]![Titel] & '') = 0
    OR some_field Like '*' & [Forms]![frm_searchForm]![Titel] & '*'

PARAMETERS还要在 SQL 语句的开头添加一个子句:

PARAMETERS [Forms]![frm_searchForm]![Titel] Text ( 255 );
于 2012-10-10T13:49:38.167 回答