我有一个带有MSFlexGrid控件的Visual Basic 6表单,它从记录集(ADODB)获取数据并显示它们。
在开始将数据复制到FlexGrid之前,我正在尝试设置行数,具体取决于记录数。此外,我有一个包含列名称的集合,然后我可以从这里获得列数。
以下是代码段:
v_colsCount = UBound(aCols) + 2 // aCols = array with columns' names
v_regCount = rs.RecordCount // rs = my ADODB record set
myFlexGrid.Rows = 0 // for cleaning rows from a previous display
myFlexGrid.Rows = IIf(v_regCount > 0, v_regCount + 1, 2)
myFlexGrid.Cols = v_colsCount
myFlexGrid.FixedRows = 1
myFlexGrid.FixedCols = 0
有7532行和52列。当我运行应用程序并尝试执行这部分代码(使用记录集中的数据填充FlexGrid)时出现问题:
For iRow = 1 To v_regCount
For iCol = 0 To v_colsCount -2
sAux = ConvStr(rs.Fields(aCols(iCol)).Value)
myFlexGrid.TextMatrix(iRow, iCol) = sAux
我注意到了
v_regCount = 7532但v_colsCount = 2,
我收到错误("Substring out of range")
。如果我交换设置顺序(即如果我在设置myFlexGrid.Rows之后设置了myFlexGrid.Cols),那么
v_regCount = 0且v_colsCount = 52
我不明白为什么我不能同时设置行数和列数。
有什么想法吗? 提前致谢