Loop through all unbound controls on a form and clear data

前端 未结 1 1668
伪装坚强ぢ
伪装坚强ぢ 2021-01-14 04:59

I would like to loop through all UNBOUND controls on my form and clear their data or reset their values. I have textboxes, comboboxes and checkboxes. Every time I try some

相关标签:
1条回答
  • 2021-01-14 05:51

    That code loops through every control in the form's Controls collection. The collection includes controls, such as labels and command buttons, which are neither bound nor unbound ... so attempting to reference their .ControlSource generates that error.

    For a control such as an unbound text box, its .ControlSource property is an empty string, not Null.

    So as you loop through the controls, inspect the .ControlSource for only those control types you wish to target. In the following example I chose text and combo boxes. When the .ControlSource is a zero-length string, set the control's .Value to Null.

    For Each ctl In Me.Controls
        Select Case ctl.ControlType
        Case acTextBox, acComboBox ' adjust to taste
            'Debug.Print ctl.Name, Len(ctl.ControlSource)
            If Len(ctl.ControlSource) = 0 Then
                ctl.value = Null
            End If
        Case Else
            ' pass
        End Select
    Next
    
    0 讨论(0)
提交回复
热议问题