执行UPDATE查询时出现“查询太复杂”错误 - Excel

时间:2013-02-26 16:37:09

标签: excel vba excel-vba

以下是查询:

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

2 个答案:

答案 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

我假设您的conncn变量只是您帖子中的拼写错误,而不是代码中的错误。此外,必须首先保存工作簿,但我认为您会得到完全不同的错误。您应该尝试将该工作表复制到新工作簿,并查看相同的代码是否有效。然后,您应该尝试更改工作表名称(和要匹配的代码)。

答案 1 :(得分:0)

检查是否为Excel单元格导出超过32,767个字符。因为Excel可以包含最多32,767个字符。 https://support.office.com/en-nz/article/Excel-specifications-and-limits-16c69c74-3d6a-4aaf-ba35-e6eb276e8eaa