Ошибка времени выполнения «-2147217900 (80040e14)»: ошибка автоматизации - PullRequest
0 голосов
/ 11 мая 2018

1.) Ошибка возникает во время строки "Set rs = conn.Execute (SQLCODE)", но когда я запускаю код SQL в SQL Management Studio, он запускается без каких-либо ошибок.Ребята, вы можете помочь с этим?

Sub ConnectSqlServer()

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
Dim SQLCODE As String
' Create the connection string.
sConnString = "Provider=SQLOLEDB;Data Source=MSPRTDBP;" & _
              "Initial Catalog=MSPWIP;" & _
               "Integrated Security=SSPI;"

' Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset

 conn.Open sConnString
SQLCODE = "Select WoIDfromTable1"

Set rs = conn.Execute(SQLCODE)
' Check we have data.
If Not rs.EOF Then
    ' Transfer result.
    Worksheets("Base").Activate
    ActiveSheet.Range("A2:H500").Clear
    ActiveSheet.Range("A2").CopyFromRecordset rs
' Close the recordset
    rs.Close
Else
    MsgBox "Error: No records returned.", vbCritical
End If
' Clean up
If CBool(conn.State And adStateOpen) Then conn.Close
Set conn = Nothing
Set rs = Nothing

End Sub

1 Ответ

0 голосов
/ 11 мая 2018

Вам не хватает пробелов в конце каждой строки для SQLCODE

Вместо этого замените его

SQLCODE = "SELECT WOID, PN, WOQTY, StartDate, CS, Station, SUM(QtyStarted) AS QtyStart, SUM(FailedQty) AS QtyFail FROM(SELECT r.WorkOrderBatch AS WOID, wo.ProductCode AS PN, wo.WorkOrderQty AS WOQTY, CONVERT(DATE, wo.StartDate) AS StartDate, wo.CurrentStatus AS CS,  " & _
          "CASE PCID WHEN 'AC.01.BN.01' THEN 'Burn-in' WHEN 'AC.01.FT.01' THEN 'Final' WHEN 'AC.01.FT.02' THEN 'Final' WHEN 'AC.01.FT.02' THEN 'Final' ELSE NULL END AS Station, COUNT(DISTINCT r.UnitIdentifier) AS QtyStarted, SUM(CASE r.IsTestPass WHEN 1 THEN 0 ELSE 1 END) AS FailedQty FROM [MSPTestResult].[MSPTestResult].[Result] r " & _
          "JOIN [MSPWIP].[MSPWIP].[WorkOrder](NOLOCK)wo ON r.workorderbatch=wo.workordernumber JOIN [MSPWIP].[MSPWIP].[BillOfOperation](NOLOCK)bo ON wo.wipworkorderid=bo.wipworkorderid AND bo.operationdescription=r.teststage " & _
          "WHERE 1=1 AND PCID IN ('AC.01.BN.01', 'AC.01.FT.01', 'AC.01.FT.02', 'AC.01.FT.02')AND wo.ProductCode IN ('R350-102')AND(wo.StartDate>(GETDATE()-7)OR wo.CurrentStatus IN ('In Progress')) " & _
          "GROUP BY r.WorkOrderBatch, wo.ProductCode, WorkOrderQty, StartDate, CurrentStatus, (PCID)) AS SUB GROUP BY WOID, PN, WOQTY, StartDate, CS, Station ORDER BY WOID ASC;"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...