Private Sub Form_Load()
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\VB±|μ \± êé′ú  \02\052\db_books.mdb;Persist Security Info=False"
cn.Open
Set rs = cn.OpenSchema(adSchemaColumns)
Set MSHFlexGrid1.DataSource = rs
cn.Close
For i = 1 To MSHFlexGrid1.Rows
List1.AddItem MSHFlexGrid1.TextMatrix(i, 3)
Next iEnd Sub
设计这个的目的是:把数据库中所有的表名加入到LIST控件中借注的是MSHFlexGrid1控件
他说下标限,这是怎么回事?苦闷!

解决方案 »

  1.   

    下标越界?    For i = 0 To MSHFlexGrid1.Rows - 1
            List1.AddItem MSHFlexGrid1.TextMatrix(i, 3)
        Next i注意第0行是从表头开始的,自己看看这行的数据有没有用.
      

  2.   

    楼上正解。
    VB中的数组类属性,默认都是从0开始的。
    因此一个10行的GRID,真实标记是从0到9
    因此你写For   i   =   1   To   MSHFlexGrid1.Rows 
    当I=MSHFlexGrid1.Rows 的时候已经超过了GRID的实际行数标号。