i am currently developing my vb6 program but having a problem in displaying one listview from two tables .. on first try it runs correctly, it stores my info like name, address, age etc. on their assigned columns but on the second run. the infos multiplies and just placed on the 1st column of the list view 🙁
here is my code on the listview form:
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
You’re not updating the index for the item when you’re adding sub-items for subsequent records, it’s always adding it to
Item(1).What you want instead in your example is
that way the sub-items are always being added to the newest item.
But be careful! If the Sorted property is true while adding, the most recent may not be the last one. In that case, you could add each item with the name as its own key:
then reference by the key instead of the index
However, it’s probably better and easier (avoiding key collision issues) to just turn off sorting before the loop with
ListView1.Sorted = Falseand turn it back on after the loop withListView1.Sorted = True.