The problem is that is a container is inside a container VB no longer considers it a container by these methods. This is my testing for this:
vb Code:
Option Explicit
Private Sub Form_Load()
Dim ctl As Object
Dim sStr As String
On Error Resume Next
For Each ctl In Controls
Err.Clear
sStr = ctl.Container
If Err.Number = 0 And sStr <> "" Then
sStr = "In a Container - " & sStr & " - " & ctl.Parent.Name
Debug.Print ctl.Name & " - " & sStr
Else
CheckContainer ctl
End If
Next
End Sub
Private Sub CheckContainer(Container As Object)
Dim ctl As Object
Dim sStr As String
Dim i As Integer
On Error Resume Next
Debug.Print vbCrLf & "Container - " & Container.Name
For i = 0 To Container.Controls.Count - 1
Err.Clear
sStr = Container.Controls(i).Name
If Err.Number = 0 And sStr <> "" Then
CheckContainer ctl
Else
Debug.Print sStr
End If
Next
End Sub