~listview+sql~帮帮忙,多谢谢!
~~~~~listview+sql~~~~~~帮帮忙,谢谢谢!!!
我要在listview里显示数据,我连接的是sql数据库,就像datagrid控件显示的样式差不多,不过datagrid太难看了,领导不让用,初学,希望各位大侠能给点详细的代码,它还用和其它的控件绑定使用吗?
------解决方案--------------------
OrderListView 1100, "select top 100 * from Pro_CommandB order by 生产单号 desc ", Me.lvJob
'调用下列子程序
Public Sub OrderListView(ByVal lvWidth As Integer, ByVal sql As String, ByRef Lvw As ListView)
' 功能说明:ListView控件显示值 '显示ID号时前面加两个 "0 "
' 参数说明
' sql 是指执行显示数据的数据库 sql 语句
' lvWidth 要显示列的宽度
' Lv要显示的列表控件
On Error Resume Next '数据库内显示空值时延迟错误处理
Dim rs As Recordset
Set RunFrm = New DBOBJ
RunFrm.ConnectionToServer '打开数据库
' DoEvents
Lvw.Visible = False '新加部分
Lvw.ColumnHeaders.Clear '这里一定要加清除不然的话数据会显示旧的
Lvw.ListItems.Clear
Set rs = RunFrm.Query(sql)
Dim i As Long
For i = 1 To rs.Fields.Count - 1
Lvw.ColumnHeaders.Add , , rs.Fields(i).Name, lvWidth '循环取出表里字段做为控件表头
Next
frmLoading.Show '弹出等待窗口
Do While Not rs.EOF
Dim ListLV As ListItem
Set ListLV = Lvw.ListItems.Add(, "k_ " & rs.Fields(0).value, rs.Fields(1).value)
'循环取出数据库内的值
Dim t As Long
Dim n As Long
Dim OpenForms
For t = 1 To rs.Fields.Count - 2
n = t + 1
ListLV.SubItems(t) = Trim(rs.Fields(n).value)
'订购单指定列显示以文字及颜色
If ListLV.ListSubItems(1).Text = "分配订单号 " Then
ListLV.ListSubItems(1).ForeColor = vbRed
End If
If ListLV.ListSubItems(13).Text = "暂无签名 " Then
ListLV.ListSubItems(13).ForeColor = vbRed
Else
ListLV.ListSubItems(13).ForeColor = &H8000&
End If
If ListLV.ListSubItems(14).Text = "暂无签名 " Then
ListLV.ListSubItems(14).ForeColor = vbRed
Else
ListLV.ListSubItems(14).ForeColor = vbRed
End If
Next
ListLV.SmallIcon = 1 '设置首列图标
ListLV.Tag = rs.Fields(0).value
rs.MoveNext
Loop
Unload frmLoading
Lvw.Visible = True
End Sub
我要在listview里显示数据,我连接的是sql数据库,就像datagrid控件显示的样式差不多,不过datagrid太难看了,领导不让用,初学,希望各位大侠能给点详细的代码,它还用和其它的控件绑定使用吗?
------解决方案--------------------
OrderListView 1100, "select top 100 * from Pro_CommandB order by 生产单号 desc ", Me.lvJob
'调用下列子程序
Public Sub OrderListView(ByVal lvWidth As Integer, ByVal sql As String, ByRef Lvw As ListView)
' 功能说明:ListView控件显示值 '显示ID号时前面加两个 "0 "
' 参数说明
' sql 是指执行显示数据的数据库 sql 语句
' lvWidth 要显示列的宽度
' Lv要显示的列表控件
On Error Resume Next '数据库内显示空值时延迟错误处理
Dim rs As Recordset
Set RunFrm = New DBOBJ
RunFrm.ConnectionToServer '打开数据库
' DoEvents
Lvw.Visible = False '新加部分
Lvw.ColumnHeaders.Clear '这里一定要加清除不然的话数据会显示旧的
Lvw.ListItems.Clear
Set rs = RunFrm.Query(sql)
Dim i As Long
For i = 1 To rs.Fields.Count - 1
Lvw.ColumnHeaders.Add , , rs.Fields(i).Name, lvWidth '循环取出表里字段做为控件表头
Next
frmLoading.Show '弹出等待窗口
Do While Not rs.EOF
Dim ListLV As ListItem
Set ListLV = Lvw.ListItems.Add(, "k_ " & rs.Fields(0).value, rs.Fields(1).value)
'循环取出数据库内的值
Dim t As Long
Dim n As Long
Dim OpenForms
For t = 1 To rs.Fields.Count - 2
n = t + 1
ListLV.SubItems(t) = Trim(rs.Fields(n).value)
'订购单指定列显示以文字及颜色
If ListLV.ListSubItems(1).Text = "分配订单号 " Then
ListLV.ListSubItems(1).ForeColor = vbRed
End If
If ListLV.ListSubItems(13).Text = "暂无签名 " Then
ListLV.ListSubItems(13).ForeColor = vbRed
Else
ListLV.ListSubItems(13).ForeColor = &H8000&
End If
If ListLV.ListSubItems(14).Text = "暂无签名 " Then
ListLV.ListSubItems(14).ForeColor = vbRed
Else
ListLV.ListSubItems(14).ForeColor = vbRed
End If
Next
ListLV.SmallIcon = 1 '设置首列图标
ListLV.Tag = rs.Fields(0).value
rs.MoveNext
Loop
Unload frmLoading
Lvw.Visible = True
End Sub