Access VBA中If语句在文本框为空时未触发问题求助
问题解决方法
在Access中,文本框被清空后的值通常是Null而非空字符串"",这就是你的If判断没触发的核心原因。另外AfterUpdate事件只有在控件值发生变化时才会触发(比如从有内容变为空/Null),如果控件本来就是空的,重复清空不会触发该事件。
修正后的代码可以用两种方式实现:
方式一:用Nz函数统一处理Null和空字符串
Private Sub Student_AfterUpdate() If Nz(Me.Student.Value, "") = "" Then MsgBox "Hello" Me.InputBeginn = "" Me.InputEnd = "" End If End Sub
Nz函数会把Null值转换成指定的默认值(这里是空字符串),这样就能统一判断空的情况。
方式二:直接同时判断Null和空字符串
Private Sub Student_AfterUpdate() If Me.Student.Value = "" Or Me.Student.Value Is Null Then MsgBox "Hello" Me.InputBeginn = "" Me.InputEnd = "" End If End Sub
如果需要在用户删除文本框内容的瞬间就触发操作(不需要等待焦点离开),可以考虑改用Change事件,但注意Change会在每一次输入字符变化时都触发,需根据实际需求选择。
内容的提问来源于stack exchange,提问作者PhilippT
相关产品推荐
相关产品推荐

