MyException - 我的异常网
当前位置:我的异常网» VB » 重开第三帖关于mschart多曲线,希望这次有所突破解

重开第三帖关于mschart多曲线,希望这次有所突破解决方案

www.MyException.Cn  网友分享于:2013-12-28  浏览:51次
重开第三帖关于mschart多曲线,希望这次有所突破
Private   Sub   Command1_Click()
On   Error   Resume   Next
Dim   data()   As   String
data()   =   Split(Text1.Text,   ", ")
For   j   =   0   To   UBound(data())
      If   data(j)   =   " "   Then
        MsgBox   "请输入您要分析的ID号 "
          Exit   Sub
      End   If
    txtSQL   =   "select   *   from   监控温度表   where     id   =   "   &   data(j)         '查询语句
    Set   rs   =   ESQL(txtSQL)           '执行查询语句
    If   rs.RecordCount   >   0   Then           '当记录大于零时
          rs.MoveFirst           '移到第一条记录
          nums   =   rs.RecordCount           '给nums赋值
        ReDim   arrValues(1   To   nums,   1   To   3)           '定义动态数组
        For   i   =   1   To   nums           '给数组赋值
                arrValues(i,   1)   =   "   "     '&   Format(rs1!时间,   "hh:mm ")
                arrValues(i,   2)   =   val(rs.Fields( "温度 "))
                arrValues(i,   3)   =   val(Rnd   *   20   +   15)   '我添加了条随机显示数据的曲线
                rs.MoveNext
        Next   i
                  MSChart1.ChartData   =   arrValues
    End   If
Next   j
End   Sub
比如现在我   在   text1.text   中输入id号为1,2,3,4
则在   mschart中显示出id=(1,2,3,4)4条曲线
横坐标为时间轴   纵坐标为   温度
现在我输入的总是得到的是最后   一个ID号的曲线(我输入1,2,3则只能得到id=3的曲线)


------解决方案--------------------
我们同是跟mschart较劲的人啊

我给你一个比较麻烦,但是可控性强的办法就是数组,然后循环给mschar赋值

你是不是用xy的那个模式,想显示温度,时间上的那个点?

如果是这样的话,那么二维数组就够了,一个x,一个y
arrValues(i, 1) = " " '& Format(rs1!时间, "hh:mm ")
arrValues(i, 2) = val(rs.Fields( "温度 "))
这样足够让mschart显示横纵坐标交点了

用1,2两条曲线为例
你再循环之前,首先设定rowcount=nums(有可能你每次取出来的recourdcount不同,那么就要每次调整一下,让rowcount保持那个最大的nums

然后在Next j之前画mschart

这里要说明的是columncount=2*你要取的曲线条数在我用的这个例子里面就是2*2=4

下面我们来画mschart

With chart

For i = 1 To ubound(arrValues)
.DataGrid.SetData i, j, arrValues(i, 1), 0
.DataGrid.SetData i, j+1, arrValues(i, 2), 0
Next i
end with

next j

这样就不会覆盖到前一条了
------解决方案--------------------
Private Sub Command1_Click()
On Error Resume Next
Dim date1 As String
' ' ' ' ' ' ' ' ' ' ' ' ' ' '

Dim Data() As String
Data() = Split(Text1.Text, ", ")
For j = 0 To UBound(Data())

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有