External Data Error

C

Craig B

So I coded up this nice macro to extract call by call data from a
Database.

This worked fine for months on end and now won't run more than once,
sometimes not at all. I get an error on oQT.refresh
backgroundrefresh:=false which throws "run Time Error
'-2147417848(80010108)': Method "refresh" of object "_QueryTable
Failed"


Any ideas on what went wrong? I replaced the text of the password
with ***** for my own piece of mind


dDate = Format(Month(Date - 1) & "/" & iStartDay & "/" & Year(Date -
1), "mm/dd/yyyy")


sDate = Format(dDate, "yyyymmdd")


Workbooks.Add


For r = iStartDay To Day(Date - 1)


sSName = Format(dDate, "mm-dd-yyyy")
sWBName = "Call by Call " & sSName & ".XLS"


If FileExists(sPath & sWBName) = False Then


sSql = ""
sConn =

"ODBC;DSN=**********;UID=********;PWD=*******;SRVR=******;DB=*****"
sSql = "SELECT " & sCW & sDate & ".Timestamp, "
sSql = sSql & sCW & sDate & ".CallEvent, "
sSql = sSql & sCW & sDate & ".CallEventName, "
sSql = sSql & sCW & sDate & ".CallID, "
sSql = sSql & sCW & sDate & ".TelsetLoginID, "
sSql = sSql & sCW & sDate & ".AssociatedData, "
sSql = sSql & sCW & sDate & ".Destination, "
sSql = sSql & sCW & sDate & ".EventData, "
sSql = sSql & sCW & sDate & ".Source, "
sSql = sSql & sCW & sDate & ".Time " & vbCrLf
sSql = sSql & "FROM blue.dbo.eCallByCallStat" & sDate & "
" & sCW & sDate & vbCrLf
sSql = sSql & " ORDER BY " & sCW & sDate & ".Timestamp"

Set oQT = ActiveSheet.QueryTables.Add(Connection:=sConn,
Destination:=Range("A1"), Sql:=sSql)


oQT.Refresh BackgroundQuery:=False <<<----Error occurs
here


Do While oQT.Refreshing = True
Loop


Columns.AutoFit


For Each WSh In ActiveWorkbook.Worksheets
For Each oQT In WSh.QueryTables
oQT.Delete
Next oQT
Next WSh


ActiveSheet.Name = sSName


ActiveWorkbook.SaveAs Filename:=sPath & sWBName


ActiveWorkbook.Close


Workbooks.Add


End If


sDate = sDate + 1
dDate = DateAdd("d", 1, dDate)


Next r
 

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