在VB6.0上的一个列表视图中显示2个表

时间:2012-09-22 12:02:57

标签: listview vb6

我目前正在开发我的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

1 个答案:

答案 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重新打开。