我在代码里计算试验数据,并显示在程序界面各自的TextBox里,下面是我的代码,请高手们帮我看看这段程序有什么问题?由于试验次数不定,所以用了动态数组。
      Dim i As Integer
            i = 0
            Dim Chg() As Single
            Dim Rs As Adodc1.Recordset
            ReDim Chg(i) As Single
            Rs.MoveFirst
            While Not Adodc1.Recordset.EOF
                  Chg(i) = Abs(Rs.Fields("试验后") - Rs.Fields("试验前")) / Rs.Fields("试             验前")
         另一问题:这个结果要显示百分比,怎么实现?
                  i = i + 1
                  AverageText.Text = "Chg(i)"
                  ReDim Preserve Chg(i) As Single
                  Rs.MoveNext
            Wend

解决方案 »

  1.   

    Dim i As Integer
    dim conn as new adodb.connection
    dim rs as new adodb.recordset
    Dim Chg() As Singleconn.connectionstring="..."     '与数据库的连接语句
    conn.open
    if rs.state=adstateopen then rs.close
    rs.open "select * from tablename",conn,adopenkeyset,adlockreadonly
    reDim Chg(i) As Single
    for i=0 to rs.recordcount
         Chg(i) = Abs(Rs.Fields("试验后") - Rs.Fields("试验前")) / Rs.Fields("试验前")
       Rs.MoveNext
    next i
    rs.close
    conn.close
    set rs=nothing
    set conn=nothing
      

  2.   

    楼上的i没有赋值
    改下
    Dim i As Integer
    dim conn as new adodb.connection
    dim rs as new adodb.recordset
    Dim Chg() As Single
    ’出百分号
    Dim strPer() As Stringconn.connectionstring="..."     '与数据库的连接语句
    conn.open
    if rs.state=adstateopen then rs.close
    rs.open "select * from tablename",conn,adopenkeyset,adlockreadonly
    i=rs.recordcount
    reDim Chg(i) As Single
    reDim strPer(i) as stringfor i=0 to rs.recordcount
         Chg(i) = Abs(Rs.Fields("试验后") - Rs.Fields("试验前")) / Rs.Fields("试验前")
         ’出百分号
         strPer(i)=CStr(Round(Chg(i), 2) * 100) & "%"
       Rs.MoveNext
    next i
    rs.close
    conn.close
    set rs=nothing
    set conn=nothing
      

  3.   

    楼主使用的是ADO控件
    // Dim Rs As Adodc1.Recordset一句应为:
     Dim Rs As new ADODB.Recordset
     Rs = Adodc1.Recordset
      

  4.   

    落了一点:
    Set Rs = Adodc1.Recordset
      

  5.   

    对,我是用Adodc来连接数据库,用DataGrid来显示数据,用Leftie和yangao还管用吗?
      

  6.   

    程序界面中的TEXTBOX应用控件数组然后进行循环中的赋值
    Dim i As Integer
    i = 0
    Dim Chg() As Single
    Dim Rs As Adodc1.Recordset
    ReDim Chg(i) As Single
    Rs.MoveFirst
    While Not Adodc1.Recordset.EOF
    Chg(i) = Abs(Rs.Fields("试验后") - Rs.Fields("试验前")) / Rs.Fields("试验前")
    ptext(i)=CStr(Round(Chg(i), 2) * 100) & "%"
    i = i + 1
    AverageText(i).Text = Chg(i)
    ReDim Preserve Chg(i) As Single
    Rs.MoveNext
    Wend
      

  7.   

    TO:haohaohappy
      我只要在程序界面放一个Textbox来显示计算的结果,你用ptext(i)会不会要求用多个Textbox控件呢?