Vba 禁用具有空值的字段

Vba 禁用具有空值的字段,vba,ms-access,ms-access-2010,Vba,Ms Access,Ms Access 2010,我的表单上有多个复选框,选中该复选框后,将禁用某些字段 但是,当要禁用的字段的值为Null或EmptyString时,在我输入值之前,该字段不会禁用。输入值将在字段失去焦点时禁用该字段 我正在使用VBA代码: Me.columnName.Enabled = False 是否可以禁用null或EmptyString字段 编辑:重构的示例代码 Private Sub Checkbox_Click() If Checkbox.Value = True Then Me.field1 = "

我的表单上有多个复选框,选中该复选框后,将禁用某些字段

但是,当要禁用的字段的值为Null或EmptyString时,在我输入值之前,该字段不会禁用。输入值将在字段失去焦点时禁用该字段

我正在使用VBA代码:

Me.columnName.Enabled = False
是否可以禁用null或EmptyString字段

编辑:重构的示例代码

Private Sub Checkbox_Click()

If Checkbox.Value = True Then

    Me.field1 = ""
    Me.field2 = ""
    Me.field1.Enabled = False
    Me.field2.Enabled = False

End If
结束子项与“”不相同

或者用

Trim(Me.field1 & "") = ""
但是,Access中的字段不太可能为“”,除非您特别允许它,因此:

If IsNull(Me.Field1) Then


我认为我们需要看到更多的代码。我无法理想地想象这一点,不要使用columnName,使用controlName。例如,您的表可能包含Address1,文本框应该是txtAddress1。我添加了一些示例代码以提供更多的想法。当您的代码尝试禁用表单字段但失败时,还会发生什么情况?Access是否向您提供了错误消息?使用以下选项检查字段:isNull(Me.field),然后msgbox“field is null”结束If。字段绝对为“”且不为空。如果字段为空,仍然无法禁用该字段
If IsNull(Me.Field1) Then
Me.field1.Enabled = Not IsNull(Me.Field1)
Me.field1.Enabled = IsNull(Me.Field1)
Me.field1.Enabled = Not Me.Checkbox