断点调试一下,看看 LoadNextNodes 被执行到哪一层出现的问题。很有可能是一些特殊结点的存在,导致错误的发生,例如叶子结点。以上猜测,就当帮你 up 。
解决方案 »
- 局域網問題,在windows專區不行才來這裡,別讓我失望啊,高手們!
- 郁闷点vb基础类出现:文本内容中发现无效字符
- 重新开贴:进都有分!调试出错,小弟没有学过VB。请各位大哥指教,我有急用!!!
- 帮忙做一个界面~~
- 如何控制print在FORM窗口上写出来的字的位置?
- 大家谁知道VB里有什么办法实现老版本FOXMAIL里的那个邮箱检查器的功能吗?它会定时查邮箱是否有邮件,有的话就显示在状态栏里一个红信封
- 请问:扩展名为.db的数据库怎样打开?
- 如何自己做个SMTP服务器发信?请将源程序发给我好吗?
- 有點困惑,......
- 在线等答案:如何引用SHEET中的控件??
- 如何实现vb程序访问计算机上的目录,包括其子目录
- 选中MSFlexGrid的某一行的任意一列,如何使该行亮选。
Private Const csTreeRoot As String = "xxx Tech Co."
Private Sub Form_Load()
RefreshCategory
End Sub
Private Sub RefreshCategory()
Dim oNode As Node
With trv
.Nodes.Clear
.Style = tvwTreelinesPlusMinusPictureText
.Sorted = True
.LabelEdit = tvwManual
Set oNode = .Nodes.Add(, , csTreeRoot, csTreeRoot)
End With SearchCategory 0, csTreeRoot
trv.Nodes(1).Expanded = True
End Sub
Private Function SearchCategory(ByVal lOutParentID As Long, ByVal sNode As String) As Boolean
Dim oRead As New CDBFetch
Dim oRS As ADODB.Recordset
Dim oNode As Node
Dim sCategory As String
Dim lID As Long
Dim lParentID As Long
Set oRS = oRead.GetDepartmentList("ParentID=" & lOutParentID, "Name ASC")
If oRS Is Nothing Then Exit Function
With oRS
If .EOF = True And .BOF = True Then
Exit Function
Else
.MoveFirst
While Not .EOF
sCategory = .Fields("Name").Value
lID = .Fields("ID").Value
Set oNode = trv.Nodes.Add(sNode, tvwChild, sCategory & lID, sCategory)
SearchCategory lID, sCategory & lID
oNode.Tag = lID
oNode.Expanded = True
.MoveNext
Wend
End If
End With
End Function
也就是一级一级来。在一个记录集的循环中最后不要跳出去执行下一个对记录集的调用中。就像你的LoadNextNodes函数!