检查未绑定控件是否具有值的正确方法

Nic*_*kis 5 ms-access vba

简单的场景:一个表单和一个文本框(未绑定)Text1.

If "" <> Text1 Then
    MsgBox "Not Empty"
End If
Run Code Online (Sandbox Code Playgroud)

上面的代码有效.""<> Text1如果文本框包含字符,则表达式的计算结果为True.

相反的方法不起作用,无论文本框是否为空:

If "" = Text1 Then  ' or alternatively, False = ("" <> Text1)
     MsgBox "Empty!"
End If
Run Code Online (Sandbox Code Playgroud)

你能澄清一下这个问题吗?

Fio*_*ala 5

如果文本框不包含任何内容,则该文本框通常为null,这与零长度字符串("")不同.通常最好使用:

If Trim(Text1 & "") = vbNullString
   'Empty
Run Code Online (Sandbox Code Playgroud)

如果文本框包含空格,零长度字符串或null,则为true.

  • 为什么不"我!Text&vbNullString = vbNullString"?除了将具有一个或多个空格的文本框视为等于Null文本框之外,Trim()没有用处.虽然未绑定的文本框不能包含多个空格,但绑定的文本框*可能*包含它们(尽管它们不能在表单控件中进行编辑). (2认同)