我初次接触VB,要做的程序要从数据库中抽取数字(不知道到底有多少条),所以抽出来数据要放到动态数组中存储,每次保存一条的时候,要重申请空间(每次只需要申请一个单元的空间),同时要保护已经存在的数据,我使用如下语句(其中为rs从数据库中获得的数据集):
rows = 0Do While Not rs.EOF
  ReDim Preserve TmpCol(rows) '*********
  TmpCol(UBound(TmpCol))=rs(0)
  
  vs.MoveNext
  rows = rows + 1
Loop以上语句是否正确?特别是加*********处,我怀疑它并非一次申请一个单元的空间,而是申请rows个单元的空间。再就是运行程序的时候报错:Subscript out of range
这样的话错误一般出现在哪些方面?

解决方案 »

  1.   

    Rows = 0
    Dim tmpCol() As Integer
    Do While Not rs.EOF
      ReDim Preserve tmpCol(Rows) '*********
      tmpCol(UBound(tmpCol)) = rs(0)
      
      vs.MoveNext
      Rows = Rows + 1
    Loop
      

  2.   


    Subscript out of range 数组下标越界了。一般情况下,不用数组。直接对RS进行读取或修改就行。
      

  3.   

    dim g_strCmmmand() as string
    redim strCmmmand(0)'初始画ReDim Preserve g_varCmmmand(ubound(g_varCmmmand)+1)'动态添加
    g_varCmmmand(ubound(g_varCmmmand))=""'赋值erase g_varCmmmand'释放