Excel 2010: 运行 时间错误 1004 一般 odbc 错误

Excel 2010: Run time error 1004 general odbc error

我有一个小的 Excel 2010 查询,要么超时(没有响应)然后得到错误 Run time error 1004 general odbc error

当我调试时,它突出显示了这一行:

 Selection.QueryTable.Refresh BackgroundQuery:=False

这是在 Excel 2007 年工作的。

我尝试 On Error Resume Next 让查询跳过任何错误并转到下一部分,但这没有帮助。

Sub Refresh_all()

    Application.ScreenUpdating = False

    Application.Goto Reference:="querycell"
    Range("A2").Select

    Selection.QueryTable.Refresh BackgroundQuery:=False

    Dim pt As PivotTable
    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets
        For Each pt In ws.PivotTables
            pt.RefreshTable
        Next pt   
    Next ws

    Application.Goto Reference:="returncell"
    Range("A1").Select
    Application.ScreenUpdating = True

End Sub

这个问题的解决方案非常奇怪,但我提出来以防将来有人发现自己陷入这种困境!

在命令文本中,其中一行是:

WHERE i.c LIKE NVL(?, '%')

出于某种原因,它在 Excel 2007 年工作,但在 2010 年没有工作

通过将其更改为此它像以前一样工作

WHERE i.c = ?

我相信会有比我更聪明的人出现并给出背后的推理,但在那之前,这就是解决问题的方法