通过 Excel VBA 从 SQL Server 获取数据时出现运行时错误

伊姆蒂祖尔哈克

我正在尝试从 SQL 服务器中获取一些数据以使用 VBA 表现出色。在网上研究后,我拼凑了一个代码,当我执行它时,它会抛出一个

运行时错误 -“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'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL Excel VBA运行时错误3709无效的连接

通过Excel / VBA运行Python脚本

Excel VBA-存储过程(SQL Server)

在Excel数据连接中使用VBA更改命令文本SQL时收到运行时错误(1004)

Excel VBA宏出现运行时错误'1004'

Excel VBA从Excel导出到SQL Server

Excel-VBA:比较日期时出现运行时错误

使用Excel-VBA宏从工作簿复制时出现运行时错误'1004'

通过直接引用范围而不是通过中间变量来引用Excel VBA运行时错误450

使用用户帐户登录时,SQL Server始终加密的数据库插入有效,但通过代理用户运行时,则无效

连接到SQL数据库时出现VBA运行时错误

无法通过Excel VBA连接到SQL数据库

Excel VBA运行时错误1004

使用VBA从受保护的网站导入Excel中的数据时出现运行时错误438

通过VBA运行Excel公式

在Excel VBA中删除多个列时出现运行时错误1004

通过Excel VBA运行访问查询时出现间歇性错误

无法使用VBA连接到SQL Server(运行时错误(80040e14))

Excel VBA查找函数获取运行时错误1004

运行时错误13 VBA Excel

在 VBA 中执行 SQL 时出现运行时错误

通过 VBA excel 使用 IsNumeric SQL 查询

删除 SQL 连接时出现 VBA 运行时错误 5

VBA Excel:将范围内容放入数组时出现运行时错误 13 - 长单元格内容

通过 Excel VBA 运行 Python 脚本

日期/时间格式的 excel sql vba 运行时错误 80040e07

Excel VBA - 使用 .ModifyAppliesTo 和运行时错误 1004(尝试插入太长的字符串时出现问题?)

删除单元格数据时出现 Excel VBA 运行时错误

使用 VBA 将 Excel 数据导入 SQL Server 表