我用如下代码Dim i         As Integer
Dim objControl As Control
    For i = 0 To Me.Controls.Count - 1
        Set objControl = Me.Controls(i)
        If TypeOf objControl Is TextBox And objControl.Text <> Empty Then
            flag = False
        End If
        If TypeOf objControl Is ComboBox And objControl.Text <> Empty Then
            flag = False
        End If
        If TypeOf objControl Is CheckBox And objControl.Value <> Empty Then
            flag = False
        End If
    Next i
汇报错“对想不支持该属性或方法”,我该怎么写
谢谢在线等    

解决方案 »

  1.   

    Dim vnt As Variant   
     For each control in  Me.Controls
     
            If TypeOf vnt Is TextBox And objControl.Text <> Empty Then
                flag = False
            End If
            If TypeOf vnt  Is ComboBox And objControl.Text <> Empty Then
                flag = False
            End If
            If TypeOf vnt Is CheckBox And objControl.Value <> Empty Then
                flag = False
            End If
        Next i
      

  2.   

    ' 只是一个小小的逻辑错误,如果VB也有像Java一样的“简单与”和“简单或”就好了
    ' 像下面这样写没问题Option ExplicitPrivate Sub Command1_Click()
        Dim i As Integer, flag As Boolean
        Dim objControl As Control
        For i = 0 To Me.Controls.Count - 1
            Set objControl = Me.Controls(i)
            If TypeOf objControl Is TextBox Then
                If objControl.Text <> Empty Then flag = False
            End If
            If TypeOf objControl Is ComboBox Then
                If objControl.Text <> Empty Then flag = False
            End If
            If TypeOf objControl Is CheckBox Then
                If objControl.Text <> Empty Then flag = False
            End If
        Next i
    End Sub
      

  3.   

    ' 不好意思,CheckBox应该是Value。
    ' 我觉得这样写更好一些Option ExplicitPrivate Sub Command1_Click()
        Dim i As Integer, flag As Boolean
        Dim objControl As Control
        For i = 0 To Me.Controls.Count - 1
            Set objControl = Me.Controls(i)
            Select Case TypeName(objControl)
                Case "TextBox", "ComboBox"
                    If objControl.Text <> Empty Then flag = False
                Case "CheckBox"
                    If objControl.Value <> Empty Then flag = False
                Case "other"
                    '......
            End Select
        Next i
    End Sub