为什么我的Querytables.add不能使用数据集参数
EXCEL有一个获取外部数据的功能,可以方便的在VBA中使用QueryTables.add方法获取外部数据
这个方法的第一个参数可以是数据库连接字符串也可以是ado或dao数据集对象,但是我使用adodb.recordset作为参数为什么总是报无效的过程调用呢?
之前的取值是rsErr.open,p_strMySql,conn,1,1
PS:
获取外部数据
Set xlQuery = xlSheet.QueryTables.Add(strConnectString, xlSheet.Range("A1"), p_strMySql)
'Set xlQuery = xlSheet.QueryTables.Add(rsErr, xlSheet.Range("A1")) '使用adodb.recordset作为参数会报错,不知道为什么,有谁知道?
With xlQuery
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh
End With
[解决办法]
引用:Microsoft Excel 11.0 Object Library
Microsoft ActiveX Data Objects 2.5 Library
然后将那个例子的代码加到 Command1_Click() 中,只改了两句:
conn.Open "Driver={SQL Server};Server=(local);Database=Northwind;Uid=sa;Pwd="sql = "select * from Employees "