|
楼主 |
发表于 2013-8-21 21:50
|
显示全部楼层
hwc2ycy 发表于 2013-8-21 20:33
拖的话是遍历CHILD和ITEM。
我猜的,
谢谢老师:下面是3级的代码,如何改为4级。谢谢!
Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
Cancel = True
Effect = 1
Dim sql$, I%, r%
Set cnn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
With Sheets("Sheet3")
r = .Range("a65536").End(xlUp).Row
End With
cnn.Open "Provider =Microsoft.Jet.OLEDB.4.0;Extended properties= Excel 8.0;Data source=" & ThisWorkbook.FullName
With Me.TreeView1
If .SelectedItem.Children = 0 Then
sql = "select * from [sheet3$a2:w" & r & "] where 我的学校 = '" & .SelectedItem.Parent & "' and 姓名 = '" & .SelectedItem.Text & "'" '
rst.Open sql, cnn, 3, 1
If rst.RecordCount = 0 Then MsgBox "未找到记录!", vbInformation, "友情提示": Exit Sub
ElseIf .SelectedItem.Parent Is Nothing Then
sql = "select * from [sheet3$a2:w" & r & "]"
rst.Open sql, cnn, 3, 1
Else
sql = "select * from [sheet3$a2:w" & r & "] where 我的学校 = '" & .SelectedItem.Text & "'"
rst.Open sql, cnn, 3, 1
End If
End With
With Me.ListView1
.Sorted = False
For I = 1 To rst.RecordCount
Set ITM = ListView1.ListItems.Add(, , IIf(IsNull(rst.Fields(0)), "", rst.Fields(0)))
For j = 1 To rst.Fields.Count - 1
ITM.SubItems(j) = IIf(IsNull(rst.Fields(j)), "", rst.Fields(j))
Next
rst.MoveNext
Next
.SelectedItem.Selected = False
End With
rst.Close: Set rst = Nothing
cnn.Close: Set cnn = Nothing
End Sub
|
|