VB6 MSFlexGrid - 无法在运行时设置列数和行数

时间:2016-05-05 14:45:44

标签: vb6 rowcount msflexgrid

我有一个带有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

我不明白为什么我不能同时设置行数和列数。

有什么想法吗? 提前致谢

0 个答案:

没有答案