Excel 2007 – 1004运行时错误刷新查询表
看来,这个错误是非常普遍的,许多现有的解决scheme解决不同的问题。
在我的情况下,我创build了一个在Excel 2010中工作的macros,在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年的连接string结构,还是有工作中的另一个问题?
解:
我在Excel 2010中使用的所有机器都具有“SQL Server Native Client 10.0”作为ODBC数据源的可能驱动程序。 Excel 2007的机器只有“SQL Server”。
我改变了我的连接string是:
cn = "ODBC;Driver=SQL Server;Server=serverName;Database=dbName;Trusted_Connection=yes;"
它像一个魅力工作。
感谢那些回应。
更改你的属性。 .Refresh BackgroundQuery:=False
是.Refresh
。 从2007年到2010年没有任何变化,所以如果改变属性不能解决问题还有其他事情正在进行,如工作簿的一部分是腐败的。
从macros调用存储过程时,我有同样的问题。 浪费了一整天的时间search互联网寻找解决scheme后,我终于find了解决办法。
我用SET NOCOUNT ON;
有效!
无法添加评论,所以这是为了解决上面提出的问题。
这个答案为我节省了很多时间。
这个MSFT文档: https : //docs.microsoft.com/en-us/sql/t-sql/statements/set-nocount-transact-sql
下面是一个实现。
create proc yourSproc as set nocount on; begin --Contents of sproc end