访问 VBA 检查是否所有复选框都为 FALSE

Access VBA Check if all Checkboxes are FALSE

大家下午好

我有这段代码来检查我的表单的复选框是否未选中,但每次我都会收到此错误消息: 运行时错误“438”

Private Sub Btn_Send_Click()
Dim ctl As Control
Dim iX As Integer

    For Each ctl In Me.Controls
        If TypeName(ctl) = "CheckBox" And ctl.Value = False Then iX = iX + 1
    Next ctl

If iX = 0 Then MsgBox "No checkBox Selected", vbExclamation, "Title"

End Sub

调试错误:

If TypeName(ctl) = "CheckBox" And ctl.Value = False Then

Run-Time Error #438: Object doesn't support this property or method

感谢您的帮助

尝试这样做:

For Each ctl In Me.Controls
    If TypeName(ctl) = "CheckBox" Then
        If ctl.Value = False Then
             iX = iX + 1
        End If
    End If
Next ctl

原因是VBA不支持短路求值 - Does the VBA "And" operator evaluate the second argument when the first is false?

因此,即使您的第一个条件是 False,它也会很好地检查您的第二个条件。如果它不是 CheckBox 控件,则会抛出错误,因为它没有 .Value 属性.