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