For i = 1 To Adodc1.Recordset.RecordCount
MSHFlexGrid2.Rows = i + 1                                                       
MSHFlexGrid2.TextMatrix(i, 1) = MSHFlexGrid1.TextMatrix(i, 2)
MSHFlexGrid2.TextMatrix(i, 2) = MSHFlexGrid1.TextMatrix(i, 3)
MSHFlexGrid2.TextMatrix(i, 3) = MSHFlexGrid1.TextMatrix(i, 5)
MSHFlexGrid2.TextMatrix(i, 4) = MSHFlexGrid1.TextMatrix(i, 7)Adodc2.ConnectionString = "driver={SQL Server};" & "server=user-PC;uid=sa;pwd=lenovo;database=nc863db"
Adodc2.RecordSource = "select substring(" & Text3.Text & "," & Text4.Text & "," & Text5.Text & ") from p_map where progressive= '" & Text1.Text & "'"
Adodc2.Refresh
MSHFlexGrid2.TextMatrix(i, 6) = Adodc2.Recordset.Fields(0).Value
Adodc2.Recordset.MoveNext
Next i
MSHFlexGrid2.TextMatrix(i, 6) = Adodc2.Recordset.Fields(0).Value 运行这句的时候会提示下标越界 这是咋回事啊?

解决方案 »

  1.   

    把这句放到 For循环外面,成成这样 MSHFlexGrid2.Rows = Adodc1.Recordset.RecordCount + 1
      

  2.   


    +1
    如果你用MSHFlexGrid2.Rows仅仅是为了显示行数,就按上面那样。
    但是不明白你加他的原因?
      

  3.   

    MSHFlexGrid2.Rows是总行数,在For循环外面加下面语句
    MSHFlexGrid2.Rows = Adodc1.Recordset.RecordCount + 1
      

  4.   

     rows 没越下标
     那就看cols 指定多少列