'表1
'ID-------字段1--------字段2
'1--------内容----------内容
'1--------内容----------内容
'1--------内容----------内容
'4--------内容----------内容
'5--------内容----------内容
'5--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'/////////////////////////////////////////////////////////////////////////////For i = ListView1.ListItems.Count To 1 Step -1 '每次查询之前先删除全部内容
ListView1.ListItems.Remove (i)
Next iDim strSql As String
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path + "\数据库.mdb;User ID=; Jet OLEDB:database Password = 123"
'//////////////////////////////连接数据库/////////////////////////////////////////////////////////
Set rs = New ADODB.Recordset
strSql = "SELECT * from 表1"
rs.Open strSql, conn, adOpenKeyset, adLockOptimisticIf rs.BOF Or rs.EOF Then
MsgBox "没有任何您需要查找的信息,请确认好查找条件后重新查找", vbInformation, "信息提示"
Exit Sub
End If
Do While Not rs.EOF
For i = 1 To rs.RecordCount
Set Fliv = ListView1.ListItems.Add()
Fliv.Text = i
Fliv.SubItems(1) = "OK"
Fliv.SubItems(2) = rs.Fields("字段1")
Fliv.SubItems(3) = rs.Fields("字段2")
Fliv.SubItems(4) = rs.Fields("ID")
'///////////////////////////////////////////////////////////////////////////////////////////////重点在这里
表2:
ID-------代码--------用量
1--------101----------1
1--------201----------5
1--------301----------4
4--------101----------6
5--------401----------20
5--------501----------8
9--------101----------3
9--------201----------5
9--------301----------28
9--------401----------1
9--------501----------2
表3
代码----------名称
101-----------花
201-----------虫
301-----------蟹
401-----------虾
501-----------鱼怎么用VB LISTVIEW 继续将查询的结果继续附加到ID列的后面,(表1.ID=表2.ID)LISTVIEW 最终显示为序号----固定列2--固定列3--固定列4-----ID---101花---201虫---301蟹---401虾----501鱼
--1-------OK------字段1-----字段2------1----1-------5-------4-------无-------无
--2-------OK------字段1-----字段2------4----6-------无------无------无-------无
--3-------OK------字段1-----字段2------5----无------无------无------20--------8
--4-------OK------字段1-----字段2------9----3--------5------28-------1--------2rs.MoveNext
Next i
Loop
rs.Close
'ID-------字段1--------字段2
'1--------内容----------内容
'1--------内容----------内容
'1--------内容----------内容
'4--------内容----------内容
'5--------内容----------内容
'5--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'9--------内容----------内容
'/////////////////////////////////////////////////////////////////////////////For i = ListView1.ListItems.Count To 1 Step -1 '每次查询之前先删除全部内容
ListView1.ListItems.Remove (i)
Next iDim strSql As String
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path + "\数据库.mdb;User ID=; Jet OLEDB:database Password = 123"
'//////////////////////////////连接数据库/////////////////////////////////////////////////////////
Set rs = New ADODB.Recordset
strSql = "SELECT * from 表1"
rs.Open strSql, conn, adOpenKeyset, adLockOptimisticIf rs.BOF Or rs.EOF Then
MsgBox "没有任何您需要查找的信息,请确认好查找条件后重新查找", vbInformation, "信息提示"
Exit Sub
End If
Do While Not rs.EOF
For i = 1 To rs.RecordCount
Set Fliv = ListView1.ListItems.Add()
Fliv.Text = i
Fliv.SubItems(1) = "OK"
Fliv.SubItems(2) = rs.Fields("字段1")
Fliv.SubItems(3) = rs.Fields("字段2")
Fliv.SubItems(4) = rs.Fields("ID")
'///////////////////////////////////////////////////////////////////////////////////////////////重点在这里
表2:
ID-------代码--------用量
1--------101----------1
1--------201----------5
1--------301----------4
4--------101----------6
5--------401----------20
5--------501----------8
9--------101----------3
9--------201----------5
9--------301----------28
9--------401----------1
9--------501----------2
表3
代码----------名称
101-----------花
201-----------虫
301-----------蟹
401-----------虾
501-----------鱼怎么用VB LISTVIEW 继续将查询的结果继续附加到ID列的后面,(表1.ID=表2.ID)LISTVIEW 最终显示为序号----固定列2--固定列3--固定列4-----ID---101花---201虫---301蟹---401虾----501鱼
--1-------OK------字段1-----字段2------1----1-------5-------4-------无-------无
--2-------OK------字段1-----字段2------4----6-------无------无------无-------无
--3-------OK------字段1-----字段2------5----无------无------无------20--------8
--4-------OK------字段1-----字段2------9----3--------5------28-------1--------2rs.MoveNext
Next i
Loop
rs.Close
解决方案 »
- 各位大神,新人求助啊,一个很小的问题
- 写顺序文件的问题,大家帮忙!
- 如何加载dll中的窗体。
- Java将一些中文存入到文本文件, 那么VB如何读取?
- 如何调用我自己写的一个txt文件,我想点击就会弹出的那种
- 50分问题。。我如何找到网络游戏的物品地址,各位大哥帮小弟一下。
- [求助]VB与ACCESS数据库的问题
- winsock传递消息的问题,请教各位大虾!
- 如何用VB指定一个邮址自动收取网上的mail 你要多少分?都给你要求 要有源码?
- 无法打开登录 'yygldb '中请求的数据库.登录失败. 应该怎么解决,希望大虾帮忙.急急急急急急急
- 全局钩子成功,做线程钩子却失败
- 问如何删除WebBrowser空间加载的document的一些 tag对象?
Fliv.SubItems(2) = rs.Fields("字段1")
Fliv.SubItems(3) = rs.Fields("字段2")
Fliv.SubItems(4) = rs.Fields("ID")
Fliv.SubItems(5) = rs.Fields("代码")
Fliv.SubItems(6) = rs.Fields("名称")
Fliv.SubItems(7) = rs.Fields("用量")
//////////////////////////////////////////////////////////////////////////
你 以前教过我
Private Sub Command1_Click()
Dim strSql As String
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i As Integer
Dim j As Integer
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\tt\t1.mdb;Persist Security Info=False"
strSql = ""
strSql = strSql & " Transform Sum(用量) " & vbNewLine
strSql = strSql & " SELECT 日期, 产量" & vbNewLine
strSql = strSql & " FROM (select a1.日期, 明细, 用量, 产量" & vbNewLine
strSql = strSql & " from a1, a2, (select 日期, sum(a1.产量) as 产量 from a1 group by 日期) a3" & vbNewLine
strSql = strSql & " Where a1.id = a2.id And a1.日期 = a3.日期" & vbNewLine
strSql = strSql & " )" & vbNewLine
strSql = strSql & " GROUP BY 日期, 产量" & vbNewLine
strSql = strSql & " Pivot 明细" & vbNewLine rs.Open strSql, cn, adOpenStatic, adLockOptimistic
With ListView1
'设置ListView1的标题、显示类型、整行选择和网格线属性
.ColumnHeaders.Clear
.ListItems.Clear
.View = lvwReport
.FullRowSelect = True
.GridLines = True
'为ListView1设置标题
For i = 0 To rs.Fields.Count - 1
.ColumnHeaders.Add , , rs.Fields(i).Name
Next i
'为ListView1设置各行数据
.ListItems.Clear
i = 0
While Not rs.EOF
i = i + 1
.ListItems.Add , , rs.Fields(0).Value
For j = 1 To rs.Fields.Count - 1
.ListItems(i).SubItems(j) = rs.Fields(j).Value & ""
Next j
rs.MoveNext
Wend
End With rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
能不能不用Transform Pivot?因为还要加其他的查询条件,这个用起来太麻烦了,不容易调试啊
呵呵,你最初是要sql,没有说用在vb里,所以用Transform Pivot
用上个帖子老虎的做法就可以了
ListView1.ListItems.Clear其次,列的问题只不过是有了静态列和动态列的区分。
静态列一开始就设计好,或者在 Form_Load 中添加。
动态列重新创建和上个帖子的区别只是不用
ListView1.ColumnHeaders.Clear
全清,而是改用
While ListView1.ColumnHeaders.Count > 4
ListView1.ColumnHeaders.Remove 5
Wend
的方式将后面的列删除,然后一样的添加列、填数据。
刷新时只需要对某些 SubItems(i) 进行赋值,不删除/添加行。
.SubItems(i+2) = "无"
'添加列头'
'ListView1.ListItems.Clear
'ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , "ID"
While Not rsCol.EOF
ListView1.ColumnHeaders.Add , , rsCol("代码") & rsCol("名称")
oSubCode.Add rsCol("代码").Value
rsCol.MoveNext
Wend
'添加数据'
While Not rsRow.EOF
Set lvi = ListView1.ListItems.Add(, , rsRow("ID"))
For i = 1 To oSubCode.Count
rsData.Filter = "(ID=" & rsRow("ID") & ") AND (代码='" & oSubCode(i) & "')"
If rsData.EOF Then
lvi.SubItems(i+2) = "无"
Else
lvi.SubItems(i+2) = rsData("用量")
End If
Next
rsRow.MoveNext
Wend数据显示开是不对,大哥能加我QQ吗,远程帮我调试一下
现在我调试下来变成这样了
列1-------------列2----------ID(动态列)--。
ID(动态列)----列值-----------动态值。。
只要把第一列的ID能够移动到ID动态也就是第3列就对了 要怎么把他移过去
'添加列头'
ListView1.ListItems.Clear
'ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , "ID"
While Not rsCol.EOF
ListView1.ColumnHeaders.Add , , rsCol("代码") & rsCol("名称")
oSubCode.Add rsCol("代码").Value
rsCol.MoveNext
Wend
'添加数据'
While Not rsRow.EOF
Set lvi = ListView1.ListItems.Add(, , rsRow("ID"))
For i = 1 To oSubCode.Count
rsData.Filter = "(ID=" & rsRow("ID") & ") AND (代码='" & oSubCode(i) & "')"
If rsData.EOF Then
lvi.SubItems(i+2) = "无"
Else
lvi.SubItems(i+2) = rsData("用量")
End If
Next
rsRow.MoveNext
Wend
'保留两列'.Clear
While ListView1.ColumnHeaders.Count > 2
ListView1.ColumnHeaders.Remove 3
Wend
'添加列头'
ListView1.ColumnHeaders.Add , , "ID"
While Not rsCol.EOF
ListView1.ColumnHeaders.Add , , rsCol("代码") & rsCol("名称")
oSubCode.Add rsCol("代码").Value
rsCol.MoveNext
Wend
'添加数据'
While Not rsRow.EOF
Set lvi = ListView1.ListItems.Add(, , "固定值1")
lvi.SubItems(1) = "固定值2"
lvi.SubItems(2) = rsRow("ID")
For i = 1 To oSubCode.Count
rsData.Filter = "(ID=" & rsRow("ID") & ") AND (代码='" & oSubCode(i) & "')"
If rsData.EOF Then
lvi.SubItems(i + 2) = "无"
Else
lvi.SubItems(i + 2) = rsData("用量")
End If
Next
rsRow.MoveNext
Wend