View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
NickHK NickHK is offline
external usenet poster
 
Posts: 4,391
Default Import data "Hangs", A "time out" is needed. Help! :)

Not sure if this will help with your errors, as I cannot test it, but may be
something like:

'<Worksheet code
Const TIMEOUT As Long = 30 'seconds
'
'Other query code
'
Set WhichSheet =Me
Application.OnTime TimeSerial(Hour(Now()), Minute(Now()), Second(Now) +
TimeOut), "TestConnections"
'</Worksheet code

'<Module code
Public WhichSheet As Worksheet

Public Sub TestConnections()
Dim i As Long

With WhichSheet.QueryTables
For i = 1 To .Count
If .Item(i).Refreshing Then
.Item(i).CancelRefresh
Debug.Print "Failed to refresh in time: " & .Item(i).Connection
Else
Debug.Print "Refreshed in time: " & .Item(i).Connection
End If
Next
End With

End Sub

'</Module code

NickHK

"John37309" wrote in message
...
I am using MS Excel to import XML data off the web using macro's. When i

hit
a server to get data, sometimes my document "Hangs" trying to get the

data.
It happens when a server is not functioning properly and Excel makes the
connection but never gets the full page of data. It happens on servers

that
are there but not functioning properly any more or something.

The problem is the same as when you use a normal web browser and click on

a
web page that never fully up-loads to your computer (Some old website).

What
i do when that happens is i just close the window. MS Excel is not doing
this, it just keeps trying.

The result is that my document just comes to a compleet stand still

waiting
for a page that it is not going to get. The document i am using has been
programed to make 30 or 40 calls for data off different web servers before

it
finishes.

What i need is to be able to set some kind of "Time out" value in the

Visual
Basic Editor so if it does not get the data in , lets say 30 seconds, then

it
see's it as an error and stops trying and just moves on to make the next
request for data.

Any help here would be appreciated.
Thank you.
John.

--
A Pint of Guinness a day keeps the doctor away.