我想用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
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
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
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
2.要用ADD方法增加列
Call listItem1.ListSubItems.Add(1, "a1", "aa")
Call listItem1.ListSubItems.Add(2, "a2", "bb")