我目前正在开发我的vb6程序但是在显示两个表中的一个列表视图时遇到问题..首先尝试它正确运行,它将我的信息存储在其指定的列上,但是在第二个列表上的名称,地址,年龄等跑。信息倍增,只是放在列表视图的第一列:( 这是我在listview表单上的代码:
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
答案 0 :(得分: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
重新打开。