MS Access, vba: getElementsByTagName
Wie wertet
man in Visual Basic eine Sammlung von HTML Elementen anhand des Tags aus?
Wenn
man in vba eine Webseite mit HTML auswertet als
HTMLDocument, dann findet man die meisten HTML Elemente anhand der ID
oder anhand des Names.
Sollte
die ID nicht vorhanden sein, dann sucht man eine HTML Element anhand des Typs
wie Input-Tag.
Hierzu
muss man die HTML Ergebnisse in eine HTML Sammlung übergeben.
Zur
Übergabe wird die Schnittstelle: IHTMLElementCollection benötigt.
Dim
arrElements As IHTMLElementCollection
Set
arrElements = hdoc.getElementsByTagName("input")
..
|
Anschliessend
durchsucht man jedes Element der Collection in einem For Each -Loop
Dim
arrElements As IHTMLElementCollection
Set
arrElements = hdoc.getElementsByTagName("input")
For Each
element In arrElements
If element.Name Like "command_*.anmelden" Then
Dim input_Element As
HTMLInputElement
Set input_Element = element
input_Element.Click
End If
Next
|
In Access
Code während des Breakpoints.
Man
sieht, dass die Rückgabe der getElementsByTagName zu einer DispHTMLElementCollection führt.
Vba Code
zum Auswerten einer HTML Input Sammlung
'------< Fill Web-Form >------
Dim
hdoc As HTMLDocument
Set
hdoc = browser.Document
'--< get Input >--
Dim element As HTMLHtmlElement
Set element = hdoc.getElementById("txtBenutzerkennung")
element.innerText =
tbxBenutzerkennung.Value
Set element = hdoc.getElementById("pwdPin")
element.innerText = tbxPasswort.Value
'--</ get Input >--
Dim arrElements As IHTMLElementCollection
Set arrElements = hdoc.getElementsByTagName("input")
For Each
element In arrElements
If element.Name Like "command_*.anmelden" Then
Dim input_Element As
HTMLInputElement
Set input_Element = element
input_Element.Click
End If
Next
'--</ get Input >--
|
Notiz: zum Verwalten von HTML Code in Microsoft Visual
Basic for applications muss man die MSHtml Library einbinden
https://microsoft-programmierer.de/Office-365/Access/Controls/MS-Access_colon_-Webseite-mit-HTML-Document-lesen-und-HTML-Elemente-verwalten?2091