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

Я не понимаю, почему я не могу установить количество строк и столбцов одновременно.

Есть идеи? заранее спасибо

0 ответов

Другие вопросы по тегам