MSHTML Objects

J

Jack Clift

Dear Sirs,

I am trying to download a csv file from the internet using
the MSHTML model and can successfully obtain the data to a
HTMLDocument variable using the following.

Dim objMSHTML As New MSHTML.HTMLDocument
Dim objDocument As MSHTML.HTMLDocument

Set objDocument = objMSHTML.createDocumentFromUrl
(txtURL.Text, vbNullString)

where txtURL.Text
= "http://www.a_web_site.com/download/data.csv"

What I cannot do is extract the csv data from the
variable, as it does not appear to be associated with any
node / element etc.

I know the objDocument does contain the data as I can
check the size of the variable to which it returns a
largeish value

I am really quite lost with all this - I do not really
understand how all this works and have been trying to find
an online resource that explains it in lay terms, however
everything that I have located to date goes way over my
head!

Hoping someone can assist

Regards

Jack
 
G

GysdeJongh

Hi,
have you seen this :

From: "Dave" <[email protected]>
References: <[email protected]>
Subject: Re: Download file from URL with password
Date: Tue, 8 Feb 2005 13:58:40 -0500
Newsgroups: microsoft.public.excel.programming

If you have a reference to MSHTML than have you tried already :

Dim myPage As HTMLDocument
'sBuffer string which holds the HTML
Dim sBuffer As String
'Capture all the text in the storage a buffer :
'
sBuffer = myPage.body.innerHTML

Than you could try to write the srting to Excel

hth
Gys
 
J

Jack Clift

the code:

sBuffer = myPage.body.innerHTML

will only work if the data is 'attached' to a 'body'
element, which it is not in my case.

Any other ideas?
 
T

Tim Williams

Try this - add reference to MSXML and ADO libraries.

Tim.

Sub SaveFileFrom Web(sURL As String, sPath As String)
Dim oXHTTP As New MSXML2.XMLHTTP
Dim oStream As New ADODB.Stream

Application.StatusBar = "Fetching " & sURL & " as " & sPath

oXHTTP.Open "GET", sURL, False
oXHTTP.send

with oStream
.Type = adTypeBinary
.Open
.Write oXHTTP.responseBody
.SaveToFile sPath, adSaveCreateOverWrite
.Close
end with

Set oXHTTP = Nothing
Set oStream = Nothing

End Sub
 
S

Stephen Bullen

Hi Jack,
I know the objDocument does contain the data as I can
check the size of the variable to which it returns a
largeish value

The easiest way to find your way around the object model is to step
through the code with the Locals window showing. Once you've opened the
URL and allowed the content to download, expand the objDocument node to
see it's contents. Hopefully, one of the properties will expose your
csv data.

Regards

Stephen Bullen
Microsoft MVP - Excel
www.oaltd.co.uk
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top