View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dick Kusleika[_3_] Dick Kusleika[_3_] is offline
external usenet poster
 
Posts: 599
Default programmatically refreshing data

Jon

How many external data tables are in the Excel workbook? One?

It is likely that the querytable is refreshing in the background because its
BackgroundQuery property is set to True. When this happens, your code
continues to run even though the query hasn't completed its refresh. If you
only have one querytable in the Excel workbook, then change

oDoc.RefreshAll

to

oDoc.Sheets(1).QueryTables(1).Refresh False

assuming that the querytable is on the first sheet. Using the False
argument will suspend code execution until the querytable is refreshed. At
least that's how it works in Excel, I don't know if it works the same via
automation, but I suspect it does.

--
Dick Kusleika
MVP - Excel
Excel Blog - Daily Dose of Excel
www.dicks-blog.com


"Jon C. Munson II" wrote in message
...
hi folx!

i've got an Access application that calls excel to download a table of

data
from an odbc source. the reason, in case you care to know, is that
particluar table has too many indexes for Access to absorb, and excel is
dropping them rather nicely so i can access the data.

here is the call:

Set oApp = CreateObject("Excel.Application")
Set oDoc = oApp.Workbooks.Open(CurrentProject.Path & "Customer.xls")
oDoc.RefreshAll
DoEvents
oDoc.Close SaveChanges:=True
DoEvents
CurrentDb.TableDefs("Customer").RefreshLink

it doesn't work. it functions, sure, but the data is not refreshed and no
errors are reported.

anybody got any clues/suggestions/solutions here?

thanks in advance!

jon