求助!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
謝謝各位老師
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/69918.html
標籤:控件
上一篇:vb
