【发布时间】:2010-09-20 00:19:59
【问题描述】:
我正在尝试从 ACD 呼叫数据系统中提取数据,确切地说是Nortel Contact Center 6.0,如果您使用该特定系统,我试图捕获的是每日呼叫数据。但是,当我使用此代码时
(sCW 是一个普通的字符串,等于eCallByCallStat 和
s日期是
dDate = Format(Month(deffDate) & "/" & iStartDay & "/" & Year(deffDate), "mm/dd/yyyy")
sDate = Format(dDate, "yyyymmdd")
)
sSql = ""
sConn = "ODBC;DSN=Aus1S002;UID=somevaliduser;PWD=avalidpassword;SRVR=Thecorrectserver;DB=blue"
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
Do While oQT.Refreshing = True
Loop"
当我运行它时,我在 oQT.Refresh BackgroundQuery:=False 处收到一条奇怪的错误消息
奇怪的是它工作了一个月左右然后就死了
@循环
我实际上将"" 添加到连接字符串中,并且实际上将用户名和密码硬编码到不带引号的查询中,为了在发布中清晰起见,我已经删除了它们
我收到的错误是
运行时错误“-2147417848(80010108)”: 对象“_QueryTable”的方法“刷新”失败
感谢您的意见,凯文。数据库永远不会处于没有人访问它的状态,它是一个全天候 24 x 7 并且始终连接到客户端的呼叫处理系统。至少这是我的理解。如果我通过 Excel 手动执行此操作,我永远不会出错,或者只有当我通过宏执行此操作时才会出现任何问题,这是否会给我带来问题,让我认为是我的代码导致了问题。
我按照制造商的建议通过 ODBC 连接到数据库,但我想知道他们是否曾设想过这种事情。
我会看看是否可以将其用于 .NET 项目,看看是否有帮助。
【问题讨论】:
-
同上,您收到的错误编号和消息是什么?