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