0

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

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

有任何想法吗?提前致谢

4

0 回答 0