![](/img/trans.png)
[英]Run-time error '-2147217900 (80040e14) while trying to retrieving data from SQL Server using VBA
[英]Run-time error while fetching data from SQL Server through Excel VBA
我試圖從SQL服務器獲取一些數據使用VBA excel。 在研究了網絡之后,我編寫了一個代碼,當我執行它時,它會拋出一個代碼
運行時錯誤-'2147217900(80040e14)':
關鍵字“ON”附近的語法不正確。
從錯誤看,似乎由於查詢中的某些異常而檢測到錯誤。 該查詢由DBA團隊提供,並包含來自2個不同表的數據。 我使用相同的查詢手動將數據從數據庫導出到excel,它的工作原理。 我不知道為什么vba會拋出錯誤。 任何幫助將不勝感激。 謝謝。
Sub sync_data_vba_sqlserver()
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlQry As String, strCon As String
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
ActiveSheet.Cells.ClearContents
sqlQry = "SELECT A.PUMA_TSD_PollID AS ID, PUMA_TSD_FieldName AS Field_Name,PUMA_TSD_FieldValue AS Field_Value,PUMA_TSD_IPAddress AS IP_Address,PUMA_TSD_PollDate AS Poll_Date,PUMA_TSD_Channel AS Channel,PUMA_TSD_MachineName AS Machine_Name,PUMA_TSD_TestBedType AS TestBedType FROM [WWW_AUXMOD].[dbo].[tblPUMA_TSD_AVLLynx] A INNER JOIN [WWW_AUXMOD].[dbo].tblPUMA_TSD_AVLLynxData L ON A.PUMA_TSD_PollID = L.PUMA_CH_TSD_PollID ON A.PUMA_TSD_PollID = L.PUMA_CH_TSD_PollID WHERE PUMA_TSD_MachineName != 'ELMS_SYSTEM' AND PUMA_TSD_PollDate >= '6/2/19';"
'---- Replace below highlighted names with the corresponding values
strCon = "Provider=sqloledb;Data Source=ECCDB1503.MD3Q.FORD.COM;Initial Catalog=WWW_AUXMOD;Integrated Security=SSPI"
'--- Open the above connection string.
con.Open (strCon)
rs.Open sqlQry, con
ActiveSheet.Cells(2, 1).CopyFromRecordset rs
rs.Close
con.Close
Set rs = Nothing
End Sub
期望從SQL Server導出到Excel的數據。
將您的查詢拉出並粘貼在此處。 評論如下,但刪除了ON並更改為AND。 你有2個ON連續。
SELECT A.PUMA_TSD_PollID AS ID, PUMA_TSD_FieldName AS Field_Name,PUMA_TSD_FieldValue AS Field_Value,PUMA_TSD_IPAddress AS IP_Address,PUMA_TSD_PollDate AS Poll_Date,PUMA_TSD_Channel AS Channel,
PUMA_TSD_MachineName AS Machine_Name,PUMA_TSD_TestBedType AS TestBedType
FROM [WWW_AUXMOD].[dbo].[tblPUMA_TSD_AVLLynx] A
INNER JOIN [WWW_AUXMOD].[dbo].tblPUMA_TSD_AVLLynxData L ON A.PUMA_TSD_PollID = L.PUMA_CH_TSD_PollID
-- change ON to AND HERE (ON IS REMOVED)
--AND A.PUMA_TSD_PollID = L.PUMA_CH_TSD_PollID (Redundant statement)
WHERE PUMA_TSD_MachineName != 'ELMS_SYSTEM'
AND PUMA_TSD_PollDate >= '6/2/19'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.