Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: час



'Описываем массив для хранения закладок.
Dim varRecord() As Variant

Private Sub Кнопка0_Click()
Dim STR_NUMBER_CARD As String
' начнём с первой карты
STR_NUMBER_CARD = "1"
Set rst_Card = New ADODB.Recordset
' откроем все карты
rst_Card.Open "SELECT CLIENT_CARDS_TBL.NUMBER_CARD, CLIENT_CARDS_TBL.PARENT_CARD, CLIENT_CARDS_TBL.GROUP_ACCOUNT  FROM CLIENT_CARDS_TBL ORDER BY NUMBER_CARD DESC", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
' Изменяем верхнюю границу размерности массива до значения свойства RecordCount.
ReDim varRecord(0 To rst_Card.RecordCount - 1)
'все карты
MsgBox " Всего карт" & rst_Card.RecordCount - 1
' начнём подсчёты
FUN_TO_CHILDREN (STR_NUMBER_CARD) ' пойдём с первой карты

End Sub



Public Function FUN_TO_CHILDREN(STR_NUMBER_CARD As String) As Integer
FUN_CHILDREN (STR_NUMBER_CARD)
End Function



Public Function FUN_CHILDREN(STR_NUMBER_CARD As String) As Integer
Dim intI As Long ' счётчик массива
intI = 0 ' счётчик массива

' применим Find для открытого рекордсета (параметры уточнить там  даже есть направление поиска)
'отфильтруем детей
rst_Card.Filter = "PARENT_CARD = '" & STR_NUMBER_CARD & "'"
Debug.Print rst_Card.RecordCount & "  Дитя "
' пошли по детям
 If rst_Card.RecordCount <> 0 Then
    Do While rst_Card.EOF = False
    ' сделали свое нужное
        GLB_GROUP_TURN = GLB_GROUP_TURN + rst_Card("GROUP_ACCOUNT")
     ' присвоили переменной новое значение номера карты
        STR_NUMBER_CARD = rst_Card("NUMBER_CARD") ' (rst("GROUP_ACCOUNT"))
        Debug.Print "  Дитё " & rst_Card("NUMBER_CARD")
    
       ' пополняем массив закладками.
        varRecord(intI) = rst_Card.Bookmark ' добавили закладку дитяти
        ' Увеличивает счетчик.
        intI = intI + 1
    ' запустили с ним функцию
        FUN_TO_CHILDREN (STR_NUMBER_CARD)

    Loop
Else
' что делать если детей больше нет.........????

    ' отключим фильтр
       ' rst_Card.Filter = adFilterNone
       ' intI = intI - 1
      '  Id_Go = varRecord(0)
       ' rst_Card.Bookmark = Id_Go
 
 End If

End Function

    Loop



Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.