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.   

    Picbox有一个建立一个永久的图形输出还是什么的属性,调整一下看看^^
      

  2.   

    我 不是用Picturebox做的
    我 是 用vb带的mschart控件做的
    闷5555
      

  3.   

    你这里写法有问题
    MSChart1.ChartData = arrValues
    每次都是一条曲线
      

  4.   

    CathySun118(斯年) 
    老兄
    那要怎么该呢
    非常感谢

    在线等
      

  5.   

    似乎在一个plot上显示不好实现,你不防作一个mschart数组,用TabStrip来切换
      

  6.   

    很难实现的!不如用excel做好图表,在vb中打开就行!
      

  7.   

    ReDim arrValues(1 To nums, 1 To 3)     '定义动态数组可不可以这样写!也就说nums好象必须为一个数把或者把 MSChart1.ChartData = arrValues
    加到next j  后面试试解决了要把解决方法贴上来啊我是在asp中碰到这样的问题,老是显示随机数
      

  8.   

    我们同是跟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 withnext j这样就不会覆盖到前一条了