MS Access – Code Snippets for Navigating using Internet Explorer

Waiting for a web page to load
While ie.Busy

Selecting differing radio buttons
Dim ieRadio As Object
Set ieRadio = ie.Document.all
ieRadio.Item("datetype")(1).Checked = True

A function that can be used to delay action before an action in code (Not web specific). Here I set to 1 second
Public Function Await1()
Dim time1 As Variant
Dim time2 As Variant

time1 = Now
time2 = Now + TimeValue("0:00:01")
Do Until time1 >= time2
time1 = Now()

End Function

Split a string of text into a 1 dimensional array with splitting occurring at returns.
Dim strArray() as String
Dim strtoParse as String
Dim intCount as Long

'here I taken an imaginary recordset and set the string to parse from the text value in the recordset
strtoParse = rs!Text
strArray = Split(strtoParse, vbNewLine)

'a simple loop that will count the number of values in the array (1 dimensional)
For intcount = LBound(strArray) To UBound(strArray)
MsgBox Trim(strArray(intCount))

Find a string in an array note the complete string needs to be found not a part within one of the array parts.
Private Function WhereInArray(vArrayName As Variant, vStringtoFind As String) As Variant
Dim i As Long
For i = LBound(vArrayName) To UBound(vArrayName)
If vArrayName(i) = vStringtoFind Then
WhereInArray = i
Exit Function
End If
Next i
'if you get here, vStringtoFind was not in the array. Set to null
WhereInArray = Null
End Function

Show whats in which Array cell – where n is a number equal to the value of a cell
So eg strArray(60) would show the value in 60th cell note arrays start from 0

MsgBox strArray(n)

Copy the HTML of a web page to a variable
my_StrVariable = ie.Document.body.innerHTML

Filter out much of the HTML formatting and only put inner text into a variable
my_StrVariable = ie.Document.body.innerText

Replace with spaces with less spaces till 2 and 3 spaces are replaced by 1 space
Function ThreeTwo(ByVal parmString As String) As String
Dim strTemp As String
strTemp = parmString

Do Until InStr(strTemp, " ") = 0
strTemp = Replace(strTemp, " ", " ")

Do Until InStr(strTemp, " ") = 0
strTemp = Replace(strTemp, " ", " ")
ThreeTwo = strTemp
End Function

Click on a button if all you know is its class name
Dim e
Set e = ie.Document.getElementsByClassName("button primary")(0)

Identify sites and how often they are visited
Look at any site

Take a look at the robots.txt of a site

About Mark

Mark Brooks a forty something individual working and living in and around Edinburgh
This entry was posted in All, Data Mining, VBA Code MS Access. Bookmark the permalink.