- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0本篇关键词:office
|
有关向窗体添加代码的详细信息,请参阅 Access 帮助。
注意 下面的示例基于 Access 包含的罗斯文示例数据库。
包含对 Office Web 组件库的引用 要运行下面的示例代码,您的数据库必须包含对 Owc10.dll 或 Owc11.dll 的引用。使用 Access 2000 或更早版本创建的数据库,或使用 Access 2002 创建但以 Access 2000 文件格式保存的数据库,不包括此引用。
要将对 Owc11.dll 的引用添加至 Access 数据库:
更改视图的布局
向行区域、列区域和明细区域添加字段
下面的代码将 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 "客户小计", _ Me.PivotTable.ActiveView.FieldSets("CustomerID").Fields("CustomerID"), _ plFunctionCount Me.PivotTable.ActiveView.DataAxis.InsertTotal _ Me.PivotTable.ActiveView.Totals("客户小计")
添加计算汇总字段
下面的代码创建了一个总计字段用于计算 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
为字段指定自定义排序
下面的代码根据您定义的自定义顺序对行字段中的项目进行排序。要创建此顺序,您需要指定顺序及排序项目的方向。
将此代码添加至 Form_DblClick (Cancel As Integer) 事件。要运行此代码,请在打开后双击窗体。
Dim arrSort As Variant arrSort = Array("销售副总裁", "销售经理", _ "销售代表", "内部销售协调员") Me.PivotTable.ActiveView.RowAxis.FieldSets("Title").Fields("Title") _ .OrderedMembers = arrSort Me.PivotTable.ActiveView.RowAxis.FieldSets("Title").Fields("Title") _ .SortDirection = plSortDirectionCustom
设置元素格式
更改显示小计的单元格的背景颜色和字体样式
下面的代码设置视图中小计的格式。使用小计所属的字段的引用,然后对小计属性进行相应调整。
Me.PivotTable.ActiveView.rowaxis.FieldSets(0).Fields(0).SubtotalBackColor = "Red" Me.PivotTable.ActiveView.rowaxis.FieldSets(0).Fields(0).SubtotalFont.Bold = True
更改明细字段的背景颜色和数值格式
下面的代码设置明细区域中字段的格式。第一行设置视图中第一个明细字段的背景颜色,第二行设置字段的自定义数值格式。
Me.PivotTable.Activeview.DataAxis.FieldSets(0).Fields(0).DetailBackColor = "Green" Me.PivotTable.ActiveView.DataAxis.FieldSets(0).Fields(0).NumberFormat = "$#,##0.00"
注意 每次在数据透视表视图中打开对象时都必须运行此代码以设置字段的数值格式。
显示或隐藏元素
显示或隐藏明细
下面的代码隐藏并显示此视图中所有项目的明细。
Me.PivotTable.ActiveData.HideDetails Me.PivotTable.ActiveData.ShowDetails如果想在此视图中显示或隐藏数据子集的明细,请使用 ChildRowMembers 对象的 ShowDetails 和 HideDetails 方法。下面的代码显示和隐藏行区域中第八个项目的明细。
Me.PivotTable.ActiveData.RowAxis.RowMember _ .ChildRowMembers(7).ShowDetails
Me.PivotTable.ActiveData.RowAxis.RowMember _ .ChildRowMembers(7).HideDetails
显示或隐藏下拉区域
下面的代码显示或隐藏“数据透视表”视图中的下拉区域。与“数据透视图”视图不同,“数据透视表”视图允许您显示和隐藏指定的下拉区域。
Me.PivotTable.ActiveView.DataAxis.Label.Visible = False Me.PivotTable.ActiveView.RowAxis.Label.Visible = True Me.PivotTable.ActiveView.ColumnAxis.Label.Visible = True Me.PivotTable.ActiveView.FilterAxis.Label.Visible = False
导出视图
将视图导出至 Microsoft Excel
使用下面的代码将“数据透视表”视图导出至 Excel。您可能需要此代码来利用 Excel 的更高级数据透视功能(例如打印)。
Me.PivotTable.Export "此处是您的文件名", plExportActionOpenInExcel
将视图导出为图像
下面的代码将“数据透视表”视图导出为 .gif 图像。将视图导出为图像可以使您与其他用户共享此视图的静态图像。
' 视图大小为 1024 X 1024。
Me.PivotTable.ExportPicture "C:\yourdirectory\filename.gif", , 1024, 1024
在运行时限制用户
下面的代码防止用户在“数据透视表”视图上执行任务(例如筛选和分组)。请注意没有禁用字段列表的属性。
Me.PivotTable.AllowFiltering = False Me.PivotTable.AllowGrouping = False Me.PivotTable.AllowCustomOrdering = False Me.PivotTable.AllowDetail = False Me.PivotTable.AllowPropertyToolbox = False
注意 AllowEdits、AllowAdditions 和 AllowDeletion 的属性设置为 False,您不能将其设置为 True。
获取用户双击的单元格的值
下面的代码确定用户在“数据透视表”视图中双击的位置,然后返回所选项目的值和类型。
要查看此代码的操作,请将下面的代码添加至窗体(其默认视图设置为“数据透视表”视图)的 Form_DblClick (Cancel As Integer) 事件过程。
If Me.CurrentView = acCurViewPivotTable Then ' 创建一些变量。 Dim sel As Object Dim pivotagg As PivotAggregate Dim sTotal As String Dim sColMems As String Dim sRowMems As String Dim sFilters As String Dim sMsg As String ' 获取所选范围。 Set sel = Me.PivotTable.Selection ' 用户可以单击以下类型对象之一: ' PivotAggregates、PivotTotals、PivotMembers、PivotFields 等。 ' 使用 TypeName() 函数来确定对象类型。 MsgBox "选定属性返回一个“" & TypeName(sel) & "”对象。", _ vbInformation, "选定属性类型" ' 如果类型为 PivotAggregates,则显示如何获取用于定义聚合的行 ' 和列成员。 If TypeName(sel) = "PivotAggregates" Then ' PivotAggregates 可以包含很多项目,但由于用户可能 ' 只双击了单个项目,所以现在它只包含一个项目, ' 即 item(0)。 Set pivotagg = sel.Item(0) ' 显示值。 MsgBox "您双击的单元格值为“" & pivotagg.Value & _ "”。", vbInformation, "单元格的值" ' 获取总计名称、行和列成员及当前筛选器。 sTotal = pivotagg.Total.Caption sColMems = BuildFullName(pivotagg.Cell.ColumnMember) sRowMems = BuildFullName(pivotagg.Cell.RowMember) ' 生成并显示消息。 sMsg = "值为 " & sTotal & " x " & sRowMems & " x " & sColMems If Len(sFilters) > 0 Then sMsg = sMsg & ",对于 " & Left(sFilters, Len(sFilters) - 2) End If MsgBox sMsg, vbInformation, "值信息" End If ' typename(sel) = "PivotAggregates" End If ' Me.CurrentView = acCurViewPivotTable
然后将下面的函数添加至窗体的模块。
Function BuildFullName(PivotMem) Dim pmTemp As PivotMember ' 临时 PivotMember 引用 Dim sFullName As String ' 由获取当前成员的名称开始。 sFullName = PivotMem.Caption ' 将临时变量设置为当前成员。 Set pmTemp = PivotMem ' 在未单击任何项目之前定位到父级目录。 While Not (pmTemp.ParentMember Is Nothing) Set pmTemp = pmTemp.ParentMember sFullName = pmTemp.Caption & "-" & sFullName Wend ' 返回 sFullName. BuildFullName = sFullName End Function
在“数据透视表”视图中编译、保存、关闭和重新打开窗体。将字段和总计添加到视图,然后双击单元格来查看会发生什么。
更改视图的布局
向视图添加字段
下面的代码将字段添加到视图中的类别和值下拉区域。
将此代码添加至窗体(其默认视图设置为“数据透视图”视图)的 Form_Open (Cancel As Integer) 事件处理程序。
Me.ChartSpace.SetData c.chDimCategories, c.chDataBound, "OrderDate" Me.ChartSpace.SetData c.chDimValues, c.chDataBound, "Freight"
启用多个图表并设置统一的刻度
下面的代码启用多图表并使图表空间中的图表具有统一的刻度。
forms(0).Form.ChartSpace.HasMultipleCharts = True forms(0).Form.ChartSpace.HasUnifiedScales = True
下面的代码拆分图表的坐标轴,以使较小的值和较大的值以合理的形式显示。拆分实际上是在与坐标轴相关的 chScaling 对象中设置的。
将下面的代码添加至窗体的 Form_Open (Cancel As Integer) 事件处理程序。
Dim sc As ChScaling Set sc = Me.ChartSpace.Charts(0).Axes(chAxisPositionLeft).Scaling sc.HasSplit = True sc.SplitMinimum = 1 sc.SplitMaximum = 3
清除图表空间并生成常值图表
下面的代码清除图表空间中的所有图表并生成一个常值图表。常值图表不绑定任何数据;仅用于演示的目的。此代码还将关闭图表的选择标志。
Me.ChartSpace.Clear Me.ChartSpace.BuildLitChart Me.ChartSpace.Charts(0).Type = chChartTypeColumnClustered
排序和设置数据格式
排序字段
下面的代码对图表系列轴的第一个字段执行排序命令。
Dim ser As ChSeries Set ser = Me.ChartSpace.Charts(0).SeriesCollection(0) ser.Select Me.ChartSpace.Commands(chCommandSortDescending).Execute
添加图表标题并设置格式
下面的代码为图表空间添加标题并设置其格式。如果图表空间包含多个图表,则采用类似的过程为每个图表添加标题。
Me.ChartSpace.HasChartSpaceTitle = True With Me.ChartSpaceTitle .Caption = "此处是您的职务" .Interior.Color = vbWhite .Border.Color = vbBlack .Border.DashStyle = chLineDashDot .Font.Size = 16 .Font.Name = "verdana" .Font.Color = vbGreen End With
更改坐标轴的位置和刻度
下面的代码将坐标轴从左上部移至右下部,并将坐标轴的刻度由线形更改为记录。
Me.ChartSpace.Charts(0).Axes(0).Position = chAxisPositionTop Me.ChartSpace.Charts(0).Axes(1).Position = chAxisPositionRight Me.ChartSpace.Charts(0).Axes(0).Scaling.Type = chScaleTypeLogarithmic
添加格式映射(条件格式化)
下面的代码在“数据透视图”视图中添加一个至 Access 的映射。将此代码添加至窗体(其默认视图设置为“数据透视图”视图)的 Form_Open (Cancel As Integer) 事件处理程序。
' 以下三行代码将向图表中添加字段。第三个值是 ' 格式值,它将用于设置数据点格式。在本例中, ' 运费的值将用带颜色的代码表示,从而显示给出数据点值的 ' 相关名次。 Me.ChartSpace.SetData c.chDimCategories, c.chDataBound, "Orderdate" Me.ChartSpace.SetData c.chDimValues, c.chDataBound, "Freight" Me.ChartSpace.SetData c.chDimFormatValues, c.chDataBound, "Freight" ' 添加格式映射,然后设置格式映射的属性。其结果是 ' 值较大的数据点用红色阴影表示,而值较小的数据点用 ' 蓝色阴影表示。 Dim ch Set ch = Me.ChartSpace.Charts(0) ch.SeriesCollection(0).FormatMap.Segments.Add ch.SeriesCollection(0).FormatMap.Segments(0).Begin.Interior.Color = vbRed ch.SeriesCollection(0).FormatMap.Segments(0).End.Interior.Color = vbBlue ch.SeriesCollection(0).FormatMap.Segments(0).HasDiscreteDivisions = True
' 将图表类型设置到列串。 ch.Type = chChartTypeColumnClustered ' 美化图表的外观。 With Me.ChartSpace .DisplayFieldButtons = True .DisplayToolbar = False .HasChartspaceLegend = True .HasChartSpaceTitle = True .ChartSpaceTitle.Caption = "当前运费总计" End With
显示或隐藏元素
显示或隐藏下拉区域
下面的代码隐藏图表的下拉区域。
Me.ChartSpace.DisplayFieldButtons = False
添加图例
下面的代码将图例添加至视图并设置其格式,然后将其移至视图底部。
Me.ChartSpace.Charts(0).HasLegend = True With Me.ChartSpace.Charts(0).Legend .Interior.Color = vbBlack .Font.Color = vbWhite .Border.Color = vbGreen End With Me.ChartSpace.charts(0).Legend.Position = chLegendPositionBottom
添加次要网龚ky"http://www.rongsen.com.cn/list.php?catid-74.html" target="_blank" class="keylink">PHP3zwvcD4NCjxkaXYgY2xhc3M9"collapsed" id="ExpCol" border="0">
下面的代码将次要网格线添加至 0 坐标轴。
Me.ChartSpace.Charts(0).Axes(0).HasMinorGridlines = True
添加自定义网格线
下面的代码演示了如何在“数据透视图”视图中向窗体绘制对象和添加文本。此示例计算一个系列上几个点的平均值并根据此值在图表上绘制一条线。
将此代码添加至窗体(其默认视图设置为“数据透视图”视图)的 Form_Open (Cancel As Integer) 事件处理程序。向下拉区域添加字段,并向图表添加图例。
' 此代码将重新绘制图表空间,从而引发窗体的 ' AfterFinalRender 事件。该事件处理程序将向图表绘制对象和 ' 添加文本。 Me.ChartSpace.repaint将下面的代码添加至 Form_AfterFinalRender (drawObject as object) 事件处理程序。
' 这些代码将设置执行计算以及 ' 在图表上准确绘制线条和文本所需的变量。 Dim average as Double Dim total as Double Dim number as Double Dim s as chSeries Dim p as chPoint Dim x as Integer Dim y as Integer Dim pa as chPlotArea ' 这些代码将在所有图表的所有数据点中循环, ' 并计算所有值的汇总和数据点的数量。然后,代码将计算 ' 点的平均值。 Set pa = Me.ChartSpace.Charts(0).PlotArea For Each s In Me.ChartSpace.Charts(0).SeriesCollection For Each p In s.Points total = total + p.GetValue(chDimValues) number = number + 1 Next Next Average = total/number
' 这些代码使用系列 ValueToPoint 方法将平均值转换为 ' 图表上的像素位置。 Me.ChartSpace.Charts(0).SeriesCollection(0).ValueToPoint x, y, 0, average
' 此代码设置 drawObject(本例中为图表)属性。 drawObject.Line.Color = "red" drawObject.Line.Weight = 2 drawObject.Font.Color = "red" drawObject.Font.Size = 9
' 此代码使用 DrawLine 和 DrawText 方法在图表上绘制一条直线和一些 ' 文本。其他变量绘制方法可以提供很多 ' 有趣的绘图能力。 drawObject.DrawLine pa.Left + 1, y, pa.Right - 1, y drawObject.DrawText "平均值", pa.left - 45, y - 10
将“数据透视图”视图导出为图像
下面的代码将“数据透视图”视图导出为 .gif 图像。将视图导出为图像可以使您与其他用户共享此视图的静态图像。
Me.ChartSpace.ExportPicture "C:\yourdirectory\filename.gif", , 1024, 1024
在运行时限制用户
下面的代码在“数据透视图”视图中为 Access 窗体设置保护属性。请注意,没有限制访问字段列表的属性。
Me.ChartSpace.AllowFiltering = False Me.ChartSpace.AllowGrouping = False Me.ChartSpace.AllowPropertyToolbox = False Me.ChartSpace.HasSelectionMarks = False
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |