VB6 MSFlexGrid - невозможно установить количество столбцов и строк во время выполнения
У меня есть форма Visual Basic 6 с элементом управления MSFlexGrid внутри, который берет данные из набора записей (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.Cols после установки myFlexGrid.Rows), то
v_regCount = 0 и v_colsCount = 52
Я не понимаю, почему я не могу установить количество строк и столбцов одновременно.
Есть идеи? заранее спасибо