Public Id_ As Variant, GLB_GROUP_TURN As Variant, rst As ADODB.Recordset
Public Function FUN(STR_NUMBER_CARD As String) As Integer
Set rst = New ADODB.Recordset
Id_ = "STR_NUMBER_CARD" & "," ' это строка в ней содержатся закладки для перехода - в конце зпт чтоб не морочить голову на проверку когда остается только родитель
GLB_GROUP_TURN =0 ' или что нужно
rst.Open "CLIENT_CARDS_TBL", GLB_CONNECTION, adOpenKeyset, adLockOptimistic
FUN_TO_CHILDREN (STR_NUMBER_CARD)
rst.Close
Set rst = Nothing
End Function
' пока ясно
Public Function FUN_TO_CHILDREN(STR_NUMBER_CARD As String) As Integer
' применим Find для открытого рекордсета (параметры уточнить там даже есть направление поиска)
rst.Find "CLIENT_CARDS_TBL.PARENT_CARD = '" & STR_NUMBER_CARD & "'"
' пошли по детям
Do While rst.EOF = False
GLB_GROUP_TURN = GLB_GROUP_TURN + FUN_PERSONAL_TURN(rst("NUMBER_CARD"))
STR_NUMBER_CARD = rst("NUMBER_CARD")
' сделали свое нужное
' добавили закладку дитяти
Id_ = rst.Bookmark & "," & Id_
' запустили с ним функцию
FUN_TO_CHILDREN (STR_NUMBER_CARD)
' по завершении ф-ции перешли на позицию дитяти с где был останов
rst.Bookmark = Val(Mid(Id_, 1, InStr(Id_, ",") - 1))
' удалили ID дитяти который уже найден для этого папика
Id_ = Mid(Id_, InStr(Id_, ",") + 1)
' получаем ID папика для которого нужно искать дальше
Id_Go = Mid(id, 1, InStr(Id_, ",") - 1)
rst.Find "CLIENT_CARDS_TBL.ID= '" & Id_Go & "'"
Loop
End Function
|