我想用listview将userinfo表中的数据显示出来,可是总是只能显示1列数据,奇怪!全部代码已经写上了,请高手帮我看看,不胜感激!Private Sub Form_Load()
Dim pubConn As New ADODB.Connection '读数据库
Dim rsTable As New ADODB.Recordset
Dim txtsql As String
Dim msgtext As String
Dim addlist1 As ListItem
Set rsTable = New ADODB.Recordset
Set pubConn = New ADODB.ConnectionpubConn.ConnectionString = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;password=zzq=1861;Initial Catalog=HRMIS;Data Source=(local)"
pubConn.Open
rsTable.CursorLocation = adUseClient
ListView1.FullRowSelect = True '允许整行选择
ListView1.GridLines = True '显示网格
ListView1.View = 3 '以报表形式显示
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add 1, , "用户名", 1000
ListView1.ColumnHeaders.Add 2, , "描述", 1000
txtsql = "select * from userinfo"
Set rsTable = ExecuteSQL(txtsql, msgtext)
While (rsTable.EOF = False)
Set addlist1 = ListView1.ListItems.Add() '将各项数据加入list列表addlist1.SubItems(1) = IIf(IsNull(rsTable.Fields("userdes")), "", rsTable.Fields("userdes"))
addlist1.SubItems(0) = IIf(IsNull(rsTable.Fields("uid")), "", rsTable.Fields("uid"))    --为什么报错,subitms只能是1?rsTable.MoveNextWendrsTable.close
pubConn.close
End Sub

解决方案 »

  1.   

    While (rsTable.EOF = False)
    Set addlist1 = ListView1.ListItems.Add() '将各项数据加入list列表addlist1.SubItems(1) = IIf(IsNull(rsTable.Fields("userdes")), "", rsTable.Fields("userdes"))
    addlist1.SubItems(0) = IIf(IsNull(rsTable.Fields("uid")), "", rsTable.Fields("uid")) --为什么报错,subitms只能是1?rsTable.MoveNextWend
    修改如下:
    While (rsTable.EOF = False)
    Set addlist1 = ListView1.ListItems.Add(,,IIf(IsNull(rsTable.Fields("uid")), "", rsTable.Fields("uid"))) '将各项数据加入list列表addlist1.SubItems(1) = IIf(IsNull(rsTable.Fields("userdes")), "", rsTable.Fields("userdes"))rsTable.MoveNextWend
      

  2.   

    txtsql = "select * from userinfo"
    Set rsTable = ExecuteSQL(txtsql, msgtext)
       ListView1.ListItems.Clear
       If rsTable.RecordCount <> 0 Then
           For i = 1 To rsTable.RecordCount
              InsertBook rsTable.Fields("uid"), rsTable.Fields("userdes")
              rsTable.MoveNext
           Next i
       End If
       rsTable.close
       pubConn.closePrivate Sub InsertBook(sText1 As String, sText2 As String)
    On Error Resume Next
        If Trim(sText1) = "" Then Exit Sub
        Dim lstTmp As ListItem
        Set lstTmp = ListView1.ListItems.Add
            lstTmp.Text = Trim(sText1)
            lstTmp.SubItems(1) = Trim(sText2)  
    End Sub
      

  3.   

    1.注意listview索引是从1开始的
    2.要用ADD方法增加列
            Call listItem1.ListSubItems.Add(1, "a1", "aa")
            Call listItem1.ListSubItems.Add(2, "a2", "bb")
      

  4.   

    接上题,如果我要删除我在listview选择的某个列,该如何做?
      

  5.   

    VB太难了,开始时还觉得不难,等到深入了解以后,就觉得越来越吃力了.特别是数据库这一块,毕竟我只是个业余爱好者,也没有一个老师能够指导我,如有愿意教我,或想和我讨论VB技术的,请加我QQ 848408360