热度 2
最近在开发一个数据分析系统,为减轻工作量,使用了一个OFFICE2003的标准控件PivotTable,现把查到一些资料汇总如下,以便后续开发时参考:
(1)对于 Access 2003,该文件的默认位置是 C:/Program Files/Common Files/Microsoft Shared/Web Components/11;对于 Access 2002,默认位置是 C:/Program Files/Common Files/Microsoft Shared/Web Components/10。
(2)开发帮助文档默认位置:C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052\OWCVBA11.CHM
(3)建立对dll文件的引用后,可以直接声明对象:
Dim ptable As PivotTable
(4)常用代码参考(转)
向行区域、列区域和明细区域添加字段
下面的代码将 CustomerID、ShipVia 和 Freight 字段添加至窗体(基于“Orders”表)“数据透视表”视图的行、列和明细区域。
Dim fset1, fset2, fset3 As PivotFieldSet
Set fset1 = Me.PivotTable.ActiveView.FieldSets("CustomerID")
Set fset2 = Me.PivotTable.ActiveView.FieldSets("ShipVia")
Set fset3 = Me.PivotTable.ActiveView.FieldSets("Freight")
Me.PivotTable.ActiveView.RowAxis.InsertFieldSet fset1
Me.PivotTable.ActiveView.ColumnAxis.InsertFieldSet fset2
Me.PivotTable.ActiveView.DataAxis.InsertFieldSet fset3
添加总计字段
下面的代码创建了用于计算 CustomerID 数目的汇总字段,并将该字段添加至视图的明细区域。
Me.PivotTable.ActiveView.AddTotal "Count Of Customers", _
Me.PivotTable.ActiveView.DataAxis.InsertTotal _
添加计算汇总字段
下面的代码创建了一个总计字段用于计算 7% 运费值,并将该字段添加至视图的明细区域。表达式参数将接受任何有效、带有“安全”Visual Basic for Applications (VBA) 函数的 Microsoft Jet Database Engine 表达式。
Me.PivotTable.ActiveView.AddCalculatedTotal "FTax", "运费税", "[Freight] * 0.07"
Me.PivotTable.ActiveView.DataAxis.InsertTotal Me.PivotTable.ActiveView.Totals("FTax") 注释
删除视图中的所有字段
下面的代码删除“数据透视表”视图中的所有字段和汇总,使之空白。其基本思想是循环各个坐标轴并删除所有总计及字段。
Dim ptable As PivotTable
Set ptable = Me.PivotTable
With ptable.ActiveView
End With
On Error GoTo Err_cmdopen:
References.AddFromFile "C:\OWC10.DLL" (这里写成绝对路径了,打包安装时可把dll文件复制到这个路径下)。
Err_cmdopen:
Exit Sub
(6)透视表导出代码:
参考了部分管方的代码,原理就创建excel对象,拷贝and粘贴
Dim xlApp
Dim XlBook
Dim pTable As OWC10.PivotTable
Dim PhotoPath As String
Dim exlpath As String
Dim oBook As Object
Dim i As Integer
exlpath = dlgGetFile(, "excel(*.xls)" & vbNullChar & "*.xls" & vbNullChar & vbNullChar, , , "", "保存文件为xls", , False)
Set pTable = Me.子窗体.Form.PivotTable
Set xlApp = CreateObject("Excel.Application.11")
Set XlBook = xlApp.Workbooks.Add
pTable.Copy pTable.ActiveView
xlApp.ActiveSheet.Paste
xlApp.Selection.Columns.AutoFit
XlBook.SaveAs ("" & exlpath & "")
xlApp.Quit
手机版|会员|至尊|接种|公卫人 ( 沪ICP备06060850号-3 )
GMT+8, 2024-5-16 14:52 , Processed in 0.027037 second(s), 6 queries , Gzip On, MemCached On.
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.