Подскажите пожалуйста!!!!
Почему при удалении узлов всегда остается одна запись в таблице esTreeViewNodes, в своей работе использую указанный ниже класс,
проблема где-то в функции Remove в этой строке Do Until NodeRS.NoMatch, программа показывает значение True при необходимости перехода к данной строке...и
далее получается ее пропуск в следствии чего она остается в таблице....
Function NodeDel() As Boolean
' Удаление узла из TreeView (True при удачном удалении)
' On Error GoTo Break
Key = Object.SelectedItem.Key
Object.Nodes.Remove Key
Call Remove
NodeDel = True
Exit Function
'Break:
' With New esAsk: .Error "NodeDel"
' End With
End Function
Private Function Remove() As Boolean
' Удаляет узел с дочерними узлами из таблицы типа TreeViewNodes
'
' ОСОБЕННОСТИ ФУНКЦИИ:
' функция является РЕКУРСИВНОЙ
Dim krit As String
'On Error GoTo Break
krit = "Key = '" & Key & "'"
NodeRS.FindFirst krit
If Not NodeRS.NoMatch Then
NodeRS.Delete
krit = "Parent = '" & Key & "'"
NodeRS.FindFirst krit
Do Until NodeRS.NoMatch
Key = NodeRS!Key
Call Remove
NodeRS.FindNext krit
Loop
End If
Remove = True
Exit Function
End Function
Ответить
|