ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用ADO的Recordset对象做为数据透视表的数据源?

如何用ADO的Recordset对象做为数据透视表的数据源?

作者:绿色风 分类: 时间:2022-08-17 浏览:75
楼主
水星钓鱼
Q:用ADO访问Excel数据源返回的Recordset对象如何用以创建数据透视表呢?
A:可以指定PivotCache对象的Recordset属性为ADO的Recordset对象,同时用ThisWorkbook.PivotCaches.Create(xlExternal)创建基于外部数据源的PivotCache对象。
示例代码如下:
  1. Sub xyf()
  2.     Dim oRecrodset
  3.     Dim sConStr As String
  4.     Dim sSql As String
  5.     Dim oWk As Worksheet
  6.     Dim oPC As PivotCache
  7.     Dim oPT As PivotTable
  8.     Set oWk = ThisWorkbook.Worksheets.Add
  9.     sConStr = "Provider='Microsoft.Jet.OLEDB.4.0';Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 8.0;HDR=YES'"
  10.     sSql = "select * from [一月$]" & _
  11.     " union all select * from [二月$] union all " & _
  12.     "select * from [三月$]"
  13.     Set oRecrodset = CreateObject("ADODB.Recordset")
  14.     oRecrodset.Open sSql, sConStr
  15.     '以下代码是用ADO的Recordset对象作为数据透视表的数据源的关键之处
  16.     Set oPC = ThisWorkbook.PivotCaches.Create(xlExternal)
  17.     Set oPC.Recordset = oRecrodset
  18.     Set oPT = oPC.CreatePivotTable(oWk.Range("a1"))
  19.     With oPT
  20.         '这里写操作数据透视表的代码
  21.     End With
  22.     Set oRecrodset = Nothing
  23. End Sub
附件如下:

如何用ADO的Recordset对象做为数据透视表的数据源.rar


2楼
xyf2210
学习
3楼
LOGO
学习!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap