以下是查询:
UPDATE [Tasks$] SET SPRINT = 1, THEME = "INTEGRATION" WHERE STORY = 1
这是数据集:
SPRINT THEME STORY Task Estimate Assigned IN_PROGRESS DONE
1 INTEGRATION 1 Some task 1 AA Wed, Feb 6 Wed, Feb 13
工作表称为“任务”。我不确定为什么这不起作用,因为查询实际上并不太复杂,并且一个非常相似的查询正在处理另一个工作表。任务工作表中总共有120行。
我在Execute方法调用上收到此错误:
Sql = "UPDATE [Tasks$]..."
cn.Execute (Sql)
感谢任何帮助。
更新:
这是连接的创建方式。
Set conn = New ADODB.Connection
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & "Extended Properties=Excel 8.0;"
conn.Open
答案 0 :(得分:1)
这对我有用
Sub test()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & "Extended Properties=Excel 8.0;"
cn.Open
cn.Execute "UPDATE [Tasks$] SET SPRINT = 1, THEME = ""INTEGRATION"" WHERE STORY = 1"
cn.Close
End Sub
我假设您的conn
和cn
变量只是您帖子中的拼写错误,而不是代码中的错误。此外,必须首先保存工作簿,但我认为您会得到完全不同的错误。您应该尝试将该工作表复制到新工作簿,并查看相同的代码是否有效。然后,您应该尝试更改工作表名称(和要匹配的代码)。
答案 1 :(得分:0)
检查是否为Excel单元格导出超过32,767个字符。因为Excel可以包含最多32,767个字符。 https://support.office.com/en-nz/article/Excel-specifications-and-limits-16c69c74-3d6a-4aaf-ba35-e6eb276e8eaa