【发布时间】:2013-04-15 14:49:24
【问题描述】:
这个错误似乎太笼统了,以至于许多现有的解决方案都解决了不同的问题。
在我的例子中,我创建了一个在 Excel 2010 中工作但在 Excel 2007 中不工作的宏。
代码总结如下:
cn = "ODBC;Driver={SQL Server Native Client 10.0};Server=serverName;Database=dbName;Trusted_Connection=yes;"
sql = "select top 10 * from tableName"
Dim S As Worksheet
Set S = ActiveWorkbook.Sheets("Medical")
With S.QueryTables.Add(Connection:=cn, Destination:=S.Range("B1"))
.CommandText = sql
.Refresh BackgroundQuery:=False
End With
此代码在 Excel 2010 中完美执行,但在 Excel 2007 中出错。
我需要更改 2007 年的连接字符串结构,还是有其他问题在起作用?
【问题讨论】:
-
错误 1004 是一般错误,但您有实际的错误文本吗?应该说类似运行时错误 1004:后跟更多描述 - 这将有助于缩小问题范围。
-
运行时错误“1004”:一般 ODBC 错误
-
Medical sheet的B1区域有查询吗?如果您右键单击单元格,您应该会看到刷新选项。
-
2010 年有,但 2007 年没有。
-
您可以尝试将 S.QueryTables.Add(Connection:=cn, Destination:=S.Range("B1")) 更改为 S.QueryTables.Add(Connection:=cn 而不是 .Commandtext , 目的地:=S.Range("B1"), Sql:=sql)?