jwcolby
jwcolby at colbyconsulting.com
Fri Apr 22 08:34:49 CDT 2011
Michael,
Thanks. The web page I navigate to is as follows:
http://webapps6.doc.state.nc.us/opi/viewoffender.do?method=view&offenderID=1119894&searchOffenderId=1119894&listurl=pagelistoffendersearchresults&listpage=1
I literally replace the offenderID with the ID (called an OPUS number) of the inmate I am viewing or
obtaining the record for.
What you are viewing if you go to this link is an actual record of some inmate. Open this web page
to view the html behind.
Notice that the picture is obscured, with a "click to show photo" which I assume is actually a button?
It is not that I need to get one or even several photos. I need the *code* to do it from VBA, and I
need to learn how it is done so I can do it again by myself.
I would prefer to actually retrieve the photo to a file stored on disk, however I also want to learn
how to click buttons (and enter data).
The following is the actual search website.
http://webapps6.doc.state.nc.us/opi/offendersearch.do?method=view
I don't need it for this project because I can do a simple replace of the OPUS ID in that first
string, but it would be good (for another project) to know how I insert data into the controls and
click the search button, how to click the Clear Selection button etc.
I currently use an ActiveX control inserted into a subform to retrieve pages, get the table
collection etc. The web control is found by clicking the ellipsis in the toolbox bar in form design
and going down until you find the Microsoft Web Browser control.
I have found code in Google to do this other ways but this is the way I have managed to get working.
I wrote a class "wrapper" with methods that I call to parse out the data. It is ugly but they
apparently did not program the web site in a "nice" manner, tables just have one big long string
etc. the following is the code that I use to poke through the dozens of tables they use.
Again, there might be an easier way but this is how I got it working.
Function mSearchTable(wbbWebsite As Object)
Dim varTables As Variant
Dim varTable As Variant
Dim strOffenderInfo As String
Dim strMostRecent As String
Set varTables = wbbWebsite.Document.All().tags("table")
Set varTables = wbbWebsite.Document.All.tags("TABLE")
For Each varTable In varTables
Dim strInnerText As String
strInnerText = varTable.innerText
'Use the innerText to see if this is the table we want.
'Debug.Print varTable.innerText
If (InStr(strInnerText, "Offender Information")) And (Not mblnOffenderInfoFound) Then
strOffenderInfo = strInnerText
mParseInfoOffender strInnerText
Else
If (InStr(strInnerText, "Most Recent Incarceration Summary ")) And (Not
mblnMostRecentInfoFound) Then
strMostRecent = strInnerText
mParseMostRecent strMostRecent
End If
End If
Next varTable
End Function
So what I need is not a fish, but to learn *how* to fish.
Any assistance gratefully accepted.
John W. Colby
www.ColbyConsulting.com
On 4/22/2011 9:06 AM, Michael Mattys wrote:
> Hi John,
>
> I've just finished a similar project for downloading
> all pdf and xls from a site and the iron is still hot.
>
> I know its volunteer - just send the relevant access info
> to my address and I'll get your pics for you.
>
> Michael R Mattys
> Business Process Developers
> www.mattysconsulting.com