Private Function getDoc(ByVal formName As String) As MSHTML.HTMLDocument
Dim xdoc1 As MSHTML.HTMLDocument
Dim xdoc2 As MSHTML.HTMLDocument
Dim xdoc3 As MSHTML.HTMLDocument
Dim xdoc4 As MSHTML.HTMLDocument
Dim xdoc5 As MSHTML.HTMLDocument
Dim xdoc6 As MSHTML.HTMLDocument
Dim xitm1 As MSHTML.IHTMLElement
Dim xitm2 As MSHTML.IHTMLElement
Dim xitm3 As MSHTML.IHTMLElement
Dim xitm4 As MSHTML.IHTMLElement
Dim xitm5 As MSHTML.IHTMLElement
Dim xitm6 As MSHTML.IHTMLElement
Dim xcol1 As MSHTML.IHTMLElementCollection
Dim xcol2 As MSHTML.IHTMLElementCollection
Dim xcol3 As MSHTML.IHTMLElementCollection
Dim xcol4 As MSHTML.IHTMLElementCollection
Dim xcol5 As MSHTML.IHTMLElementCollection
Dim xcol6 As MSHTML.IHTMLElementCollection
'find the first document that has a form named 'form'
WebBrowser1.SetFocus
'lets get this goin...
Set xdoc1 = WebBrowser1.Document
Set xcol1 = xdoc1.getElementsByTagName("*")
For Each xitm1 In xcol1
If (UCase(xitm1.getAttribute("tagName")) = "FORM" _
And UCase(xitm1.getAttribute("name")) = UCase(formName)) Then
Set getDoc = xdoc1
Exit Function
ElseIf ((xitm1.getAttribute("tagName") = "IFRAME") Or (xitm1.getAttribute("tagName") = "FRAME")) Then
MsgBox ("FOUND FRAME" & xdoc1.frames.Item(xitm1.getAttribute("id")).Document)
' Set xdoc2 = xdoc1.frames.Item(xitm1.getAttribute("id")).Document
' Set xcol2 = xdoc2.getElementsByTagName("*")
'
' For Each xitm2 In xcol2
' If (UCase(xitm2.getAttribute("tagName")) = "FORM" _
' And UCase(xitm2.getAttribute("name")) = UCase(formName)) Then
' Set getDoc = xdoc2
' Exit Function
' ElseIf ((xitm2.getAttribute("tagName") = "IFRAME") Or (xitm2.getAttribute("tagName") = "FRAME")) Then
' Set xdoc3 = xdoc2.frames.Item(xitm2.getAttribute("id")).Document
' Set xcol3 = xdoc3.getElementsByTagName("*")
'
' For Each xitm3 In xcol3
' If (UCase(xitm3.getAttribute("tagName")) = "FORM" _
' And UCase(xitm3.getAttribute("name")) = UCase(formName)) Then
' Set getDoc = xdoc3
' Exit Function
' ElseIf ((xitm3.getAttribute("tagName") = "IFRAME") Or (xitm3.getAttribute("tagName") = "FRAME")) Then
' Set xdoc4 = xdoc3.frames.Item(xitm3.getAttribute("id")).Document
' Set xcol4 = xdoc4.getElementsByTagName("*")
'
' For Each xitm4 In xcol4
' If (UCase(xitm4.getAttribute("tagName")) = "FORM" _
' And UCase(xitm4.getAttribute("name")) = UCase(formName)) Then
' Set getDoc = xdoc4
' Exit Function
' ElseIf ((xitm4.getAttribute("tagName") = "IFRAME") Or (xitm4.getAttribute("tagName") = "FRAME")) Then
' Set xdoc5 = xdoc4.frames.Item(xitm4.getAttribute("id")).Document
' Set xcol5 = xdoc5.getElementsByTagName("*")
'
' For Each xitm5 In xcol5
' If (UCase(xitm5.getAttribute("tagName")) = "FORM" _
' And UCase(xitm5.getAttribute("name")) = UCase(formName)) Then
' Set getDoc = xdoc5
' Exit Function
' End If
' Next
' End If
' Next
' End If
' Next
' End If
' Next
End If
Next
MsgBox ("Can't find form named '" & formName & "'. Going with base doc.")
Set getDoc = xdoc1 'just in case we dont find one inside an iframe
End Function