求助!vb中mschart定义以及加rowlabel加不上

leegarcn 2016-08-15 04:01:35
求助!vb中mschart定义以及加rowlabel加不上

各位老师,现有调查表一份,数据库中需要统计各年龄数有多少,比如最小22岁2个,26数4个,29岁6个,等等,但数量不固定,因为下次调查可能会出现21岁3个,
问题1:如何定义Mydata(i,0)中的i?,现在只能数出个数再定义,比如46个,就定义Dim Mydata(46,0) as double
读取年龄到list1,没个年龄有几个读取到list2,制表,都可以,现在是行标加不上了,要么不匹配,要么说索引越界。
问题:如何添加动态行标?

代码如下:
Private Sub Form_Load()

Dim cnnlz As New ADODB.Connection
Dim rsnlz As New ADODB.Recordset
Dim rsnlztj As New ADODB.Recordset
cnnlz.Open "provider=microsoft.ace.oledb.12.0;data source=" & App.Path & "\dk.mdb" & ";Jet OLEDB:Database Password="
rsnlz.Open "select distinct 年龄 from 存档 order by 年龄 asc", cnnlz, 1, 3


Dim i1, i2
For i1 = 0 To rsnlz.RecordCount - 1
Label1 = "有数据的年龄" & rsnlz.RecordCount
i2 = IIf(IsNull(rsnlz("年龄")), "", rsnlz("年龄"))
List1.AddItem i2
rsnlz.MoveNext

If rsnlztj.State Then rsnlztj.Close
rsnlztj.Open "select * from 存档 where 年龄 = '" & List1.List(i1) & "'", cnnlz, 1, 3
List2.AddItem rsnlztj.RecordCount
rsnlztj.MoveNext
Next i1
Label2 = "各年龄个数" & List2.ListCount
'=============================因为年龄数不固定,此处无法定义动态的Mydata(i,0),只能固定指定46,有什么办法定义动态个数?
Dim MyData(46, 0) As Double
Dim y As Integer
For y = 0 To List2.ListCount - 1
MyData(y, 0) = List2.List(y)

'============================此处需要加行标,就是加不上,要么索引越界,要么不匹配,注释掉就好用,但没有行标了
'MSChart1.Row = y + 1
MSChart1.RowLabel = List1.List(y)

Next y


With MSChart1
.TitleText = "年龄分布图示"
.Plot.SeriesCollection(1).Pen.Width = 1
.Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid
.Plot.Axis(VtChAxisIdX).ValueScale.Auto = True
.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
'// 设置最大值
.Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 1
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 40
'// 设置最小值
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
.Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0
'//
.Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 12 'X轴主要网格数量
.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 10 'Y轴主要网格数量
.Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量
.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量
.Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted
.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDotted
End With

MSChart1.Plot.SeriesCollection(1).DataPoints(-1).Brush.FillColor.Set 255, 0, 0 '红色
' MSChart1.Plot.AutoLayout = True
MSChart1.Plot.UniformAxis = False
MSChart1.chartType = 1 '设置图形为线图

MSChart1.ChartData = MyData '数据

End Sub


谢谢各位老师
...全文
1171 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧