0

这是查询:

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
4

2 回答 2

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

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

于 2015-04-15T13:03:33.127 回答
0

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

于 2015-04-15T08:43:37.060 回答