Sql server 在Excel VBA中执行SQL Server脚本时发生自动错误
我正在EXCEL VBA中打开SQL Server连接,并在objMyCmd.Execute行上使用SQL脚本时收到以下错误消息: 运行时错误'-2147217900 80040e14'自动错误 我已经回顾了其他SO帖子,它们似乎引用了连接字符串本身的问题,但我不认为这是问题所在,因为在删除SQL脚本的其余部分时,我能够提取列出的前几个变量 我试图查看SQL代码,以查看是否使用了不正确的格式,或者语言编写不正确,并且无法确定问题所在。我希望通过一些问答,我们可能会注意到我在如何写这篇文章时遗漏了什么?请让我知道,如果有其他信息,我可以提供,下面是代码的错误点Sql server 在Excel VBA中执行SQL Server脚本时发生自动错误,sql-server,vba,excel,execute,Sql Server,Vba,Excel,Execute,我正在EXCEL VBA中打开SQL Server连接,并在objMyCmd.Execute行上使用SQL脚本时收到以下错误消息: 运行时错误'-2147217900 80040e14'自动错误 我已经回顾了其他SO帖子,它们似乎引用了连接字符串本身的问题,但我不认为这是问题所在,因为在删除SQL脚本的其余部分时,我能够提取列出的前几个变量 我试图查看SQL代码,以查看是否使用了不正确的格式,或者语言编写不正确,并且无法确定问题所在。我希望通过一些问答,我们可能会注意到我在如何写这篇文章时遗漏了
Sub SQL_GetAgentChart()
Dim dtDate As Date
Dim myTable As ListObject
Dim DataServer As String
Dim Database As String
Dim constring As String
DataServer = "GLSSQLMADP2"
Database = "PERF_MGMT_BWRSRV_PROD"
constring = "Driver={SQL Server};Server=" & DataServer & "; Database=" & Database & "; Trusted_Connection=yes"
Dim AVStartDate As Date
Dim AVEndDate As Date
Dim RepID As Long
'Declare variables'
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
Set myTable = Worksheets("Witness").ListObjects("tblWitness")
AVStartDate = DateValue("Mar 01, 2016")
AVEndDate = DateValue("Mar 31, 2016")
RepID = 2040
'Open Connection'
objMyConn.ConnectionString = constring
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = " " & _
"SELECT PERSN_XTRNL_ID_NR, SOURCE, LOGGINGTS, DD7, CUREREASON, CUREDATE, LNSTATUS " & _
"FROM TTB " & _
"WITH INCALL AS (SELECT T.CUREREASON, CUREVALUE " & _
"FROM TTB T " & _
"JOIN PERSONNEL P ON T.PERSONNELID = P.PERSONNELID " & _
"LEFT JOIN CURETRANSLATE C ON T.CUREREASON = C.CUREREASON AND T.LNSTATUS = C.STATUS " & _
"WHERE T.PERSONNELID = " & RepID & " " & _
"AND LOGGINGTS > '" & AVStartDate & "' " & _
"AND LOGGINGTS < '" & AVEndDate + 1 & "' " & _
"AND INCOMING = 1 " & _
"AND DD7 > 0), OUTCALL AS (SELECT T.CUREREASON, CUREVALUE " & _
"FROM TTB T " & _
"JOIN AVAYA A ON T.UID = A.TTBUID " & _
"LEFT JOIN CURETRANSLATE C ON T.CUREREASON = C.CUREREASON AND T.LNSTATUS = C.STATUS " & _
"WHERE PERSONNELID = " & RepID & " " & _
"AND LOGGINGTS > '" & AVStartDate & "' " & _
"AND LOGGINGTS < '" & AVEndDate + 1 & "' " & _
"AND INCOMING = 0 " & _
"AND A.AVAYAGROUP IN ('15', '1A', '1B', '1C', '1D', '1E', '1F', '1G', '1H') " & _
"AND DD7 > 0) "
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
哪一行出现错误?请在“objMyCmd.Execute”上设置断点。执行“objMyCmd.CommandText”的“Debug.Print”。复制该语句并直接在db服务器上执行;看看它是否按预期执行。