AvayaSBCCRT'附近的语法不正确

时间:2015-09-07 13:11:32

标签: sql-server vba excel-vba excel

我真的很抱歉要问,我确定答案非常简单,但每当我尝试在excel中运行宏时,我都会收到标题中声明的错误消息:

Sub CallsMacro()

Dim ConData As ADODB.Connection
Dim rstData As ADODB.Recordset
Dim wsSheet As Worksheet
Dim strServer As String
Dim strDatabase As String
Dim strFrom As String
Dim strto As String
Dim intCount As Integer

Set wsSheet = ActiveWorkbook.Worksheets("Refresh")
With wsSheet
strServer = "TNS-CCR-02"
strDatabase = "AvayaSBCCRT"
strFrom = .Range("C$2")
strto = .Range("C$3")
End With

Set ConData = New ADODB.Connection
With ConData
.ConnectionString = "Provider=SQLOLEDB;Data Source=" & strServer & ";" & "Initial Catalog=" & ";" & "persist security info=true;" & "User Id=dashboard; Password=D4$hboard;"
.CommandTimeout = 1800
.Open
End With

''Create the recordset from the SQL query
Set rstData = New ADODB.Recordset

Set wsSheet = ActiveWorkbook.Worksheets("Calls")

With rstData
.ActiveConnection = ConData
.Source = "SELECT DISTINCT CAST(c.createdate AS date) as [Date]," & _
"CASE WHEN c.[CategoryID] = 1 then 'Outbound' WHEN c.[CategoryID] = 2 then         'Inbound' Else 'Internal' end as [Direction], c.cli as [Number], c.ddi, 'CallCentre' as [Queue], '' as [Queue Time], u.username as [Agent], cast((c.DestroyDate - c.CreateDate) as TIME) as [Duration], 'Connected' as [Status], c.callID as [Reference]" & _
"FROM [AvayaSBCCRT].[dbo].[tblAgentActivity] as a" & _
"JOIN [AvayaSBCCRT].[dbo].[tblCallList] as c on c.calllistid = a.calllistid" & _
"JOIN [AvayaSBCCRT].[dbo].[tblUsers] as u on u.userid = a.AgentID" & _
"WHERE c.createdate between '" & strFrom & "' and '" & strto & "'" & _
"AND a.[ActivityID] = 3 "
.CursorType = adOpenForwardOnly
.Open
End With

wsSheet.Activate

Dim Lastrow As Long

Lastrow = Range("A" & Rows.Count).end(xlUp).Row

Range("A2:J" & Lastrow).ClearContents

If rs.EOF = False Then wsSheet.Cells(2, 1).CopyFromRecordset rsData


rs.Close
Set rs = Nothing
Set cmd = Nothing


con.Close
Set con = Nothing


End Sub

我看起来高低不能找到原因。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你在行尾缺少空格。您的SQL包含例如:

[tblAgentActivity] as aJOIN [AvayaSBCCRT].[dbo].[tblCallList]