Office中国论坛/Access中国论坛

标题: 利用office chart 制作完美图表 [打印本页]

作者: memphis240    时间: 2015-4-16 22:53
标题: 利用office chart 制作完美图表
本帖最后由 roych 于 2015-4-17 08:51 编辑

access自带的图表要存数据,导致文件急剧膨胀,利用office chart,制作出赏心悦目的趋势图,柱状图。科学得很。
Private Const conn = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=sa;Initial Catalog=数据库名;Data Source=SQL服务器地址"
  Dim QsSql As String
      Dim chConstants
      QsSql = "SELECT 日期,铝粉,精钛产品量,入库量,低价钛 FROM dbo.精制每日汇总 WHERE 日期 BETWEEN '" & Forms!精制查询分析!DateS & "' And '" & Forms!精制查询分析!DateE & "';"
      Me.ChartSpace1.ConnectionString = conn
      Me.ChartSpace1.CommandText = QsSql      
      Set chConstants = Me.ChartSpace1.Constants
    '单个图表,多个序列
       Me.ChartSpace1.HasMultipleCharts = False
       Me.ChartSpace1.PlotAllAggregates = chConstants.chPlotAggregatesSeries     
     '多个图表,每图表一个序列
     'ChartSpace1.HasMultipleCharts = True
     'ChartSpace1.PlotAllAggregates = chConstants.chPlotAggregatesCharts
      Me.ChartSpace1.SetData chConstants.chDimCategories, chConstants.chDataBound, "日期"
      Me.ChartSpace1.SetData chConstants.chDimValues, chConstants.chDataBound, Array("铝粉", "精钛产品量", "入库量", "低价钛")
      Me.ChartSpace1.SetData chConstants.chDimFormatValues, chConstants.chDataBound, Array("铝粉", "精钛产品量", "入库量", "低价钛")
     '设置序列型号
      Me.ChartSpace1.Charts(0).Type = 6  '13折线,0为柱状
     '设置序列线的颜色
      Me.ChartSpace1.Charts(0).SeriesCollection(0).Line.Color = "red"
      Me.ChartSpace1.Charts(0).SeriesCollection(1).Line.Color = "blue"
      Me.ChartSpace1.Charts(0).SeriesCollection(2).Line.Color = 16711935
      Me.ChartSpace1.Charts(0).SeriesCollection(3).Line.Color = "yellow"
     '设置序列线的宽度
      Me.ChartSpace1.Charts(0).SeriesCollection(0).Line.Weight = 1
      Me.ChartSpace1.Charts(0).SeriesCollection(1).Line.Weight = 1
      Me.ChartSpace1.Charts(0).SeriesCollection(2).Line.Weight = 1
      Me.ChartSpace1.Charts(0).SeriesCollection(3).Line.Weight = 1
     '设置序列的图例名称
      Me.ChartSpace1.HasChartSpaceLegend = True
      Me.ChartSpace1.Charts(0).SeriesCollection(0).Caption = "铝粉"
      Me.ChartSpace1.Charts(0).SeriesCollection(1).Caption = "在产品量"
      Me.ChartSpace1.Charts(0).SeriesCollection(2).Caption = "产量"
      Me.ChartSpace1.Charts(0).SeriesCollection(3).Caption = "低价钛"
      With ChartSpace1.ChartSpaceLegend
        .Position = chConstants.chLegendPositionTop
        .Font.Color = 0
        .Font.Size = 9
      End With

     '设置图表标题
      Me.ChartSpace1.HasChartSpaceTitle = True
         With ChartSpace1.ChartSpaceTitle
           .Caption = "产量及铝粉趋势图"
           .Font.Size = 12
           .Font.Color = "#000000"
           .Font.Bold = True
         End With
End Sub



作者: yanwei82123300    时间: 2015-4-17 08:10
分享一下小例子更好!谢谢
作者: roych    时间: 2015-4-17 10:32
本帖最后由 roych 于 2015-4-17 10:35 编辑

怎么说呢?用控件草草测试了一下,比起Access自带的Graph来,Office Chart最大的缺陷在于无法混合图表类型(如:柱状图-折线图)。有时间再用代码测试。印象中,之前的Microsoft Chart也挺好用的,但Access 2010似乎不再支持这个控件了。


作者: 风中漫步    时间: 2015-4-17 17:12
谢谢分享
作者: p51219    时间: 2016-4-9 23:39
支持原创
作者: p51219    时间: 2016-7-10 00:21
好好好呵呵呵呵呵




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3