vb高手您好!!!关于mschart的问题,请您帮助!
你好我最近在做vb调用数据库正好看见了您的一个精品回答十分受用非常感谢!!!但是在套用过程中遇到了一点小问题希望您能给解答一下:PrivateSubCommand2_Cl...
你好 我最近在做vb调用数据库 正好看见了您的一个精品回答 十分受用 非常感谢!!!
但是在套用过程中遇到了一点小问题 希望您能给解答一下:
Private Sub Command2_Click()
MSChart1.Visible = True
Dim i As Integer
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\电池板开路电压.mdb"
conn.Open
rs.Open "select * from 电池板开路电压", conn, adOpenKeyset, adLockOptimistic
' Set MSChart1.DataSource = rs
With MSChart1
'// 以线条方式显示
.chartType = 3
'// 把刻录改为手工方式
.Plot.Axis(VtChAxisIdY).ValueScale.Auto = True
'// 设置最大值
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 50
'// 设置最小值
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
'// 设置每格为 1
.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 1
'// 增加测试数据
.ColumnCount = 1
'//轴坐标标题
.Plot.Axis(VtChAxisIdX, 0).AxisTitle = "Time"
.Plot.Axis(VtChAxisIdY, 0).AxisTitle = "Value"
'//轴坐标标题字体大小的设置
.Plot.Axis(VtChAxisIdX, 0).AxisTitle.VtFont.Size = 10
.Plot.Axis(VtChAxisIdY, 0).AxisTitle.VtFont.Size = 10
'//设置图表标题
.Title.Text = "“电池板开路电压-时刻”对应曲线图"
'// 将图表作为图例的背景。
.ShowLegend = False
'// 标记每个点的值
For i = 1 To .Plot.SeriesCollection.Count
.Plot.SeriesCollection(i).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeAbovePoint
Next
If rs.RecordCount > 0 Then
rs.MoveFirst
Else
Exit Sub
End If
For i = 0 To rs.RecordCount - 1
.RowCount = rs.RecordCount
.Row = i + 1
.RowLabel = CStr(rs("Time"))
.Data = rs("Value")
rs.MoveNext
Next
End With
End Sub
上面的代码我把数据库的名字和表名改了 已经能成功画出曲线图 但是由于数据量较大
所以导致曲线图上面的数值标注太密集 形成了一条粗粗的黑线 因此我想去掉数值标注
所以说 您能不能帮忙解决这种数据库数据量较大 以致坐标轴标注、数值标注过于密集的问题
326414062这是我的qq号 如果我的描述不清楚请您联系我
谢谢!!! 展开
但是在套用过程中遇到了一点小问题 希望您能给解答一下:
Private Sub Command2_Click()
MSChart1.Visible = True
Dim i As Integer
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\电池板开路电压.mdb"
conn.Open
rs.Open "select * from 电池板开路电压", conn, adOpenKeyset, adLockOptimistic
' Set MSChart1.DataSource = rs
With MSChart1
'// 以线条方式显示
.chartType = 3
'// 把刻录改为手工方式
.Plot.Axis(VtChAxisIdY).ValueScale.Auto = True
'// 设置最大值
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 50
'// 设置最小值
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
'// 设置每格为 1
.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 1
'// 增加测试数据
.ColumnCount = 1
'//轴坐标标题
.Plot.Axis(VtChAxisIdX, 0).AxisTitle = "Time"
.Plot.Axis(VtChAxisIdY, 0).AxisTitle = "Value"
'//轴坐标标题字体大小的设置
.Plot.Axis(VtChAxisIdX, 0).AxisTitle.VtFont.Size = 10
.Plot.Axis(VtChAxisIdY, 0).AxisTitle.VtFont.Size = 10
'//设置图表标题
.Title.Text = "“电池板开路电压-时刻”对应曲线图"
'// 将图表作为图例的背景。
.ShowLegend = False
'// 标记每个点的值
For i = 1 To .Plot.SeriesCollection.Count
.Plot.SeriesCollection(i).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeAbovePoint
Next
If rs.RecordCount > 0 Then
rs.MoveFirst
Else
Exit Sub
End If
For i = 0 To rs.RecordCount - 1
.RowCount = rs.RecordCount
.Row = i + 1
.RowLabel = CStr(rs("Time"))
.Data = rs("Value")
rs.MoveNext
Next
End With
End Sub
上面的代码我把数据库的名字和表名改了 已经能成功画出曲线图 但是由于数据量较大
所以导致曲线图上面的数值标注太密集 形成了一条粗粗的黑线 因此我想去掉数值标注
所以说 您能不能帮忙解决这种数据库数据量较大 以致坐标轴标注、数值标注过于密集的问题
326414062这是我的qq号 如果我的描述不清楚请您联系我
谢谢!!! 展开
1个回答
展开全部
因数据太多,rs.RecordCount - 1 会很大,试试让图表每隔20组数据画一张图,通过移动滚动条
来切换其他数据所画的曲线。
来切换其他数据所画的曲线。
追问
非常感谢!!!
但是因为我是新手,刚接触vb一周,所以很菜,希望您能把代码直接修改一下,或者能够指导一下我具体操作步骤,可以么?
至于您说的调整20组数据画一张图,我还是不太明白,是直接调整rs.RecordCount - 1这句代码吗?还有您提到的"通过滚动条切换其他数据所画的曲线",是调整完数据间隔后能够自动出现?还是需要另外的代码?希望您能帮助我,谢谢!!!
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询