Access辅导:Access编程使用数据透视表和数据透视
来源:优易学  2011-12-9 16:46:29   【优易学:中国教育考试门户网】   资料下载   IT书店

  Access 中的窗体和数据表支持两种新视图:PivotTable®(数据透视表)视图和 PivotChart®(数据透视图)视图。数据透视表视图使用 Office 数据透视表组件,易于进行交互式数据分析。数据透视图视图使用 Office Chart 组件,帮助您创建动态的交互式图表。这些视图支持交互操作,例如添加、筛选和排序数据,而无需写入代码。然而,如果要生成基于用户输入的运行时视图,则需要编写代码。本文介绍了在数据透视表和数据透视图视图中执行简单任务(例如移动和筛选字段)的示例代码。
  有关向窗体添加代码的详细信息,请参阅 Access 帮助。
  注释 下面的示例基于 Access 包含的罗斯文贸易示例数据库。
  包含对 Office Web 组件库的引用
  要运行下面的示例代码,您的数据库必须包含对 Owc11.dll(对于 Access 2003)或 Owc10.dll(对于 Access 2002)的引用。使用 Access 2000 或更早版本创建的数据库,或使用 Access 2002 或更高版本创建但以 Access 2000 文件格式保存的数据库,不包括此引用。
  将对 Owc11.dll 或 Owd10.dll 的引用添加至 Access 数据库
  打开准备添加引用的数据库。
  在工具栏上单击“代码”,打开 Microsoft Visual Basic® 编辑器。
  在“工具”菜单上,单击“引用”。
  单击“浏览”并导航到 Owc11.dll 或 Owc10.dll 文件所在的位置。
  对于 Access 2003,该文件的默认位置是 C:/Program Files/Common Files/Microsoft Shared/Web Components/11;对于 Access 2002,默认位置是 C:/Program Files/Common Files/Microsoft Shared/Web Components/10。
  选择该文件,单击“打开”,然后单击“确定”。
  “数据透视表”视图示例
  更改视图的布局
  向行区域、列区域和明细区域添加字段
  下面的代码将 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.FieldSets("CustomerID").Fields("CustomerID"), _
  plFunctionCount
  Me.PivotTable.ActiveView.DataAxis.InsertTotal _
  Me.PivotTable.ActiveView.Totals("Count Of Customers")

  添加计算汇总字段
  下面的代码创建了一个总计字段用于计算 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
  Do While .RowAxis.FieldSets.Count > 0
  .RowAxis.RemoveFieldSet 0
  Loop
  Do While .ColumnAxis.FieldSets.Count > 0
  .ColumnAxis.RemoveFieldSet 0
  Loop
  Do While .FilterAxis.FieldSets.Count > 0
  .FilterAxis.RemoveFieldSet (0)
  Loop
  Do While .DataAxis.FieldSets.Count > 0
  .DataAxis.RemoveFieldSet (0)
  Loop
  Do While .DataAxis.Totals.Count > 0
  .DataAxis.RemoveTotal (0)
  Loop
  End With
  筛选和排序数据
  筛选行字段
  下面的代码筛选行区域中的 CustomerID 字段。通过使用 IncludedMember 属性将您要查看的值传递给视图。
  将此代码添加至 Form_DblClick (Cancel As Integer) 事件。要运行此代码,请在打开后双击窗体。
  Dim arrFilter As Variant
  arrFilter = Array("ALFKI", "BLAUS", "CHOPS", "EASTC")
  Me.PivotTable.ActiveView.RowAxis.FieldSets("CustomerID") _
  .Fields("CustomerID").IncludedMembers = arrFilter

[1] [2] [3] [4] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训