Sql 什么';I';我想在ADO Excel中使用?

Sql 什么';I';我想在ADO Excel中使用?,sql,excel,vba,adodb,Sql,Excel,Vba,Adodb,我正在尝试使用ADO更新工作表的内容 我构造的SQL语句是: update [Regional Personnel$] set name='Ada Lovelace', phone='(303) 555-1337', [lan id]='ADL3',position='Engineer' where id=3 区域人员工作表具有以下列结构: +----+---------------------+------------------------+--------+---------------

我正在尝试使用ADO更新工作表的内容

我构造的SQL语句是:

update [Regional Personnel$] set name='Ada Lovelace',
phone='(303) 555-1337',
[lan id]='ADL3',position='Engineer' where id=3
区域人员
工作表具有以下列结构:

+----+---------------------+------------------------+--------+----------------+
| ID |        Name         |        Position        | Lan Id |     Phone      |
+----+---------------------+------------------------+--------+----------------+
|  2 | Kimberly St.-Simone | Senior Engineer        | KMS1   | (808) 555-0210 |
|  3 | Daphne Christianson | Database Administrator | DAC5   | (909) 555-3524 |
+----+---------------------+------------------------+--------+----------------+
但当我有ADO连接并尝试使用以下命令执行此update语句时:

Sub update(sql as string)

dim objconnection As New ADODB.Connection

objconnection.CommandTimeout = 99999999

objconnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & ThisWorkbook.FullName & ";" & _
        "Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"";"


objconnection.Execute sql

End Sub
objconnection.Execute sql
行给出了以下错误:

Run-time error '-2147217900 (80040e14)':
Syntax error in UPDATE statement.
SQL语句在我看来还行,我是否遗漏了什么?

  • 位置
    周围放上方括号(似乎是保留字)
  • 从连接字符串中删除
    IMEX=1
    ,否则会出现“错误”操作 必须使用可更新的查询“
修订守则:

Sub Tester()

   update "update [Regional Personnel$] set name='Ada Lovelace'," & _
       " [Phone]='(303) 555-1337', [lan id]='ADL3', [position]='Engineer' where id=3"


End Sub


Sub update(sql As String)

    Dim objconnection As New ADODB.Connection

    objconnection.CommandTimeout = 99999999

    objconnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & ThisWorkbook.FullName & ";" & _
        "Extended Properties=""Excel 12.0 Xml;HDR=YES;"";"

    objconnection.Execute sql

End Sub

您还应该将表名和“位置”括起来

update [Regional Personnel$] 
set [Regional Personnel$].name='Ada Lovelace',
[Regional Personnel$].phone='(303) 555-1337',
[Regional Personnel$].[lan id]='ADL3',
[Regional Personnel$].[position]='Engineer' 
where [Regional Personnel$].id=3