0

VB6 を使用して SQL Server からデータをインポートし、グリッドに表示しています。グリッドには 100 行あり、データベースから 1 つの行をグリッドの 1 つの行に取り込もうとすると、グリッド内で 100 回繰り返されますが、1 つの行にとどまりたいだけです。私は何を間違っていますか?

コード:

While Count < 100
    Dim adoCSRS As adodb.Recordset
    Set adoCSRS = New adodb.Recordset
    adoCSRS.CursorLocation = adUseClient

    'Then comes my query which has no problem as the data is being retrieved without any problem and then'

    Dim i As Integer

    While Not adoCSRS.EOF


        'After this part, I assign the text fields their respective values from Database and then'

        i = i + 1

        MSFlexGrid.AddItem _
        adoCSRS.Fields("Coulmn Name") & Chr(9) & _
        adoCSRS.Fields("Coulmn Name") & Chr(9) & _
        adoCSRS.Fields("Coulmn Name") & Chr(9) & _
        adoCSRS.Fields("Coulmn Name") & Chr(9) & _
        adoCSRS.Fields("Coulmn Name") & Chr(9) & _
        adoCSRS.Fields("Coulmn Name") & Chr(9) & _
        adoCSRS.Fields("Coulmn Name") & Chr(9)

        MSFlexGrid.Col = 11
        MSFlexGrid.Row = i
        MSFlexGrid.CellFontName = "Wingdings"
        MSFlexGrid.CellFontSize = 10
        MSFlexGrid.CellAlignment = flexAlignCenterCenter
        MSFlexGrid.TextMatrix(i, 14) = uncheckedBox

        adoCSRS.MoveNext
    Wend

    MSFlexGrid.RowSel = 0
    successful = True

    Count = Count + 1
Wend
4

1 に答える 1

0

2 つの個別の (ネストされていない) while ループが必要です。最初のループは、データベースからデータを追加します。2 番目のループは、空の行をグリッドに追加します。

Dim i As Integer
i = 0
While Not adoCSRS.EOF
  i = i + 1
  ' Add from db - same as your code above '
  MSFlexGrid.AddItem _
    adoCSRS.Fields("Coulmn Name") _
    ...
Wend

While i < 100
  i = i + 1
  ' Add blank row '
  MSFlexGrid.AddItem _
    ...
Wend
于 2013-06-04T12:49:00.043 に答える