关于VB中listview控件与数据库连接的有关问题, 高分
关于VB中listview控件与数据库连接的问题,急 高分
我想用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.Connection
pubConn.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.MoveNext
Wend
rsTable.close
pubConn.close
End Sub
------解决方案--------------------
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.MoveNext
Wend
修改如下:
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.MoveNext
Wend
------解决方案--------------------
我想用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.Connection
pubConn.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.MoveNext
Wend
rsTable.close
pubConn.close
End Sub
------解决方案--------------------
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.MoveNext
Wend
修改如下:
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.MoveNext
Wend
------解决方案--------------------
- VB code
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.close Private 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