Public Function FUN_TO_CHILDREN(STR_NUMBER_CARD As String) As Integer
' применим Find для открытого рекордсета
'(параметры уточнить там даже есть направление поиска)
Dim rst As ADODB.Recordset
Dim Id_ As String
Dim Id_Go As String
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.Find "PARENT_CARD = '" & STR_NUMBER_CARD & "'"
' пошли по детям
Do While rst.EOF = False
' сделали свое нужное
GLB_VAL_COUNT = GLB_VAL_COUNT + 1
GLB_GROUP_TURN = GLB_GROUP_TURN + (rst("GROUP_ACCOUNT"))
STR_NUMBER_CARD = rst("NUMBER_CARD")
' If GLB_VAL_COUNT >= 2000 Then Exit Do
Debug.Print GLB_VAL_COUNT 'rst("NUMBER_CARD") & " " & FUN_PERSONAL_TURN(rst("NUMBER_CARD"))
' добавили закладку дитяти
Id_ = rst.Bookmark & "," & Id_
' запустили с ним функцию
'rst.Close
'Set rst = Nothing
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
|