2013-06-04 1 views
0

VB6을 사용하여 SQL Server에서 데이터를 가져와 Grid에 표시하고 있습니다. Grid에는 100 개의 행이 있고 Grid의 단일 행에있는 데이터베이스의 단일 행을 채울 때마다 Grid에서 100 번 반복되지만 100 행만 유지됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?VB6에서 행을 반복

코드 :

당신은 두 개의 분리 된 (중첩되지 않음) 동안 루프를 가질 필요가
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 

답변

0

. 첫 번째 루프는 데이터베이스의 데이터를 추가합니다. 두 번째 루프는 그리드에 빈 행을 추가합니다.

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 
+0

알고 있습니다. 그리드에 100 개의 행을 표시하고 싶지만 데이터베이스에서 추출한 필드가 100 개의 모든 행에 표시되는 것을 원하지 않습니다. – Reaper211

+1

@ Reaper211 - 업데이트 된 답변보기. –

+0

시간 내 주셔서 감사합니다. 내일까지 알려 드리겠습니다. :) – Reaper211

관련 문제