dar*_*kjh 22 ms-access vba access-vba
我的Access表单上有一个文本框和一个按钮.在按钮的单击事件中,我想查看文本框是否为空,如果是,则不会执行任何操作.所以我用
If Me.textbox.Value = Null Then
Exit Sub
End if
Run Code Online (Sandbox Code Playgroud)
但它不起作用...我在执行窗口中检查了textbox.value并且它是Null,但if子句不起作用......为什么?
编辑:@Dimse,我试过"",不起作用.而且textbox.text = Null,它弹出一个错误告诉我文本框没有活动..很奇怪.
Han*_*sUp 55
Null永远不会等于任何东西,甚至不是Null.使用该IsNull()功能.
If IsNull(Me.textbox.Value) Then
Run Code Online (Sandbox Code Playgroud)
如果你想Me.textbox在它包含空字符串时处理相同的内容,就像它的Null一样,将空字符串连接到它并检查组合字符串的长度:
If Len(Me.textbox.Value & "") = 0 Then
Run Code Online (Sandbox Code Playgroud)
您还可以使用命名常量,vbNullString而不是字符串文字"",用于空字符串.
If Len(Me.textbox.Value & vbNullString) = 0 Then
Run Code Online (Sandbox Code Playgroud)
使用字符串文字需要VBA每次从头开始构造该字符串.使用命名常量,VBA只需要引用它,因此应该更快并使用更少的内存.然而,在许多(可能是大多数)情况下,性能优势vbNullString会非常小,以至于您不会注意到差异.另请参见下面的评论从大卫-W-芬顿.
对我来说,使用的更有说服力的理由vbNullString是它可以让我老化的眼睛立刻识别出来.相反,对于字符串文字,我需要(一点点)更长的时间来确认""实际上并不是其他东西...喜欢" "或者"'".vbNullStringIMO 唯一的缺点就是需要更多打字"".
最后,尽管您实际上并不需要显式引用该Value属性(因为它是文本框的默认属性),但我将其保留,因为您有这种方式,因为我也喜欢明确地使用它Value.:-)
| 归档时间: |
|
| 查看次数: |
75644 次 |
| 最近记录: |