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

时间:2009-09-08 09:18:06

标签: ms-access vba

简单方案:表单和一个文本框(未绑定),Text1

If "" <> Text1 Then
    MsgBox "Not Empty"
End If

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

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

If "" = Text1 Then  ' or alternatively, False = ("" <> Text1)
     MsgBox "Empty!"
End If

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

3 个答案:

答案 0 :(得分:5)

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

If Trim(Text1 & "") = vbNullString
   'Empty

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

答案 1 :(得分:4)

或者,我有一个小函数,我觉得在处理各种变量类型时检查那种东西很有用,我只是想知道它是否是空白

'-----------------------------------------------------------------------------'
' True if the argument is Nothing, Null, Empty, Missing or an empty string.   '
'-----------------------------------------------------------------------------'
Public Function IsBlank(arg As Variant) As Boolean
    Select Case VarType(arg)
        Case vbEmpty
            IsBlank = True
        Case vbNull
            IsBlank = True
        Case vbString
            IsBlank = (arg = vbNullString)
        Case vbObject
            IsBlank = (arg Is Nothing)
        Case Else
            IsBlank = IsMissing(arg)
        End Select
End Function

今天也只是Made a blog post

答案 2 :(得分:1)

我总是使用function Nz (variable, valueIfNull)来检查这些事情。例如:

 if (Len(Nz(Me.txt1, "")) > 0) then
        'Me.txt1 does not contain a value
 end if

或者,如果我想将文本框的值保存到记录集:

rst!Name = Nz(Me.txtName, "No name given")