2012-09-22 4 views
3

현재 vb6 프로그램을 개발하고 있지만 두 테이블에서 하나의 listview를 표시하는 데 문제가 있습니다. 처음에는 올바르게 실행되고 이름, 주소, 나이와 같은 정보가 저장됩니다. 할당 된 열에 있지만 두 번째 실행시에.VB6.0에서 하나의 목록보기에 2 개의 테이블을 표시합니다.

Private Sub Form_Activate() 
Set rs = New ADODB.Recordset 
With rs 
.open "Select * from tblapps , tblappsinfo", cn, 3, 3 
ListView1.ListItems.Clear 
Do Until rs.EOF 
    ListView1.ListItems.Add = !Name 
    ListView1.ListItems.Item(1).ListSubItems.Add = !address 
    ListView1.ListItems.Item(1).ListSubItems.Add = !tin 
    ListView1.ListItems.Item(1).ListSubItems.Add = !cel 
    ListView1.ListItems.Item(1).ListSubItems.Add = !College 
    ListView1.ListItems.Item(1).ListSubItems.Add = !age 
    ListView1.ListItems.Item(1).ListSubItems.Add = !Status 
    ListView1.ListItems.Item(1).ListSubItems.Add = !Salary_Desired 
    ListView1.ListItems.Item(1).ListSubItems.Add = !Hours_can_work 
    ListView1.ListItems.Item(1).ListSubItems.Add = !Available_for_work 



    .MoveNext 
    Loop 
End With 

답변

2

당신이 하위를 추가 할 때 당신은 항목에 대한 인덱스를 업데이트하지 않는 다음 정보를 정기적으로 증식이 그냥 목록보기의 첫번째 열에 배치 :( 여기 목록보기 양식에 내 코드입니다 후속 레코드에 대한 항목은 항상 Item(1)에 추가합니다.

당신이 당신의 예를 대신 원하는 것은

ListView1.ListItems.Item(ListView1.ListItems.Count) 

하위 항목은 항상 최신 항목에 추가되는 방법입니다.

하지만 조심하세요! 추가하는 동안 Sorted 속성이 true이면 가장 최근 항목이 마지막 항목이 아닐 수도 있습니다. 이 경우, 당신은 자신의 키로서 이름으로 각 항목을 추가 할 수 있습니다

ListView1.ListItems.Add , !Name, !Name 

다음 대신 인덱스 그러나

ListView1.ListItems.Item(!Name) 

의 키에 의해 참조, 그것은 아마도 더 쉽게 (피 키 충돌 문제) ListView1.Sorted = False와 루프 전에 정렬을 해제하고 ListView1.Sorted = True 루프 후 다시 켜십시오.

관련 문제