一个名为data.mdb的access数据库里有2张表,表名分别为text和list,list表内容:
=====================================
name em fox qq url file
a1 a3 a5 a6
b1 b3 b5 b6
c1 c3 c5 c6
d1 d3 d5 d6
e1 e3 e5
f1 f3
g1 g5 g6
======================================
问题一:
我想用listview控件显示list表中的name,fox,url,file这4个字段中的数据,其余的不显示
问题二:
另外如果有一行中file无数据,那这一整行都不显示到listview中高分送上,分不够,可以再加啊,谢谢各位大侠帮忙
=====================================
name em fox qq url file
a1 a3 a5 a6
b1 b3 b5 b6
c1 c3 c5 c6
d1 d3 d5 d6
e1 e3 e5
f1 f3
g1 g5 g6
======================================
问题一:
我想用listview控件显示list表中的name,fox,url,file这4个字段中的数据,其余的不显示
问题二:
另外如果有一行中file无数据,那这一整行都不显示到listview中高分送上,分不够,可以再加啊,谢谢各位大侠帮忙
SQL就是1楼的写法
'pRs为存储数据的记录集
'Clear表示是否清空原有数据
'FillHeader表示是否填充表头
'Fields为记录集中待填充的列索引,如果Fields的第一项为-1则表示全部填充
'另外该函数会自动在每一项的tag前添加"序号|",用"|"分隔序号与原先Tag
'该序号用于当列表被重新排序时,可以根据选中项的Tag值迅速定位到lpRs的对应项目,保证重新排序后仍保持lpRs对列表的索引
'比如你想填充第1,3,4,5列,清空原有数据并且重新设置标头,那就用Fill_ListView(Listview1,pRS,True,True,1,3,4,5)Public Function Fill_ListView(ListView1 As Variant, _
pRs As ADODB.Recordset, _
Clear As Boolean, _
FillHeader As Boolean, _
ParamArray Fields() As Variant) Dim Headers As Variant Dim Item As Variant
Dim i As Long
Dim j As Long
Debug.Print pRs.RecordCount If Clear = True Then ListView1.ListItems.Clear
If FillHeader = True Then
ListView1.ColumnHeaders.Clear '清空数据和标题
If Fields(0) = -1 Then
For i = 1 To pRs.Fields.Count
ListView1.ColumnHeaders.Add , pRs.Fields(i - 1).Name, pRs.Fields(i - 1).Name ', Printer.TextWidth(pRs.Fields(i - 1).Name)
Next
Else
For Each Headers In Fields '填充标题
ListView1.ColumnHeaders.Add Headers, pRs.Fields(Headers).Name, pRs.Fields(Headers).Name, ListView1.Width / (UBound(Fields) + 1)
Next
End If End If If pRs.RecordCount > 0 Then
pRs.MoveFirst
j = 0
If Fields(0) <> -1 Then
While pRs.EOF = False
'Debug.Print pRs(0).UnderlyingValue
Set Item = ListView1.ListItems.Add(, , pRs(Fields(0)).Value & "")
Item.Tag = j & "|" & Item.Tag
For i = 1 To UBound(Fields)
Item.subitems(i) = pRs(Fields(i)) & ""
Next
j = j + 1
pRs.MoveNext
Wend
Else
While pRs.EOF = False
'Debug.Print pRs(0).UnderlyingValue
Set Item = ListView1.ListItems.Add(, , pRs(0).Value & "")
Item.Tag = j & "|" & Item.Tag
For i = 1 To pRs.Fields.Count - 1
'Debug.Print Item.subitems.Count
Item.subitems(i) = pRs(i) & ""
Next
j = j + 1
pRs.MoveNext
Wend
End If End If
End Function
Dim addLVW As ListItemPrivate Sub Form_Load()
SQL = "select * from list"
Me.ListView1.ListItems.Clear
Call OpenConn rs.Open SQL, cn, 1, 1
Do While Not rs.EOF
Set addLVW = Me.ListView1.ListItems.Add(, , rs!name)
addLVW.SubItems(1) = rs!fox
addLVW.SubItems(2) = rs!url
addLVW.SubItems(3) = IIf(IsNull(rs!file), "", rs!file)
rs.MoveNext
Loop
Call CloseConn
End Sub