Saya lihat kasus lama ini belum mendapat sentuhan, 
utak atik atuk, p. sumiyanto, saya coba dengan recursif.

Susunan tabel yang dipergunakan adalah:
M_Members (ID, ParentID)

Jadi setiap member hanya punya satu parent.
Contoh data jika mengambil data sample p. sumiyanto:

ID      ParentID
A       .
B       A
C       A
D       B
E       B
F       C
G       C
H       D
I       D
J       E
K       E
L       F
M       F
N       G
O       G

Jadi A punya down B dan C, 
B punya down D dan E, C punya down F dan G,
demikian seterusnya.

P. Sumiyanto, bisa pelajari fungsi berikut (di bawah).
Cara pakainya, coba di immediate window ketikkan:
? Bonus ("A")

Hasil yang keluar adalah 30000 (level 2 B+C dan level 3 D+E + F+G).

Saya bisa mengubah levelling dengan mengganti nilai MAX_LEVEL menjadi 4, 5, dst 
....
Saya juga bisa mengubah fix bonus dg mengubah nilai BONUS_VALUE.

(fungsinya sih cuma beberapa baris, tapi untuk saya butuh dua hari mikirnya, 
pak ... :) )


aksan kurdin






Option Compare Database
Option Explicit

Const MAX_LEVEL As Integer = 3
Const BONUS_VALUE As Double = 5000

Function Bonus(ID As String, Optional level As Integer = 1) As Double
    
    Dim rs As DAO.Recordset
    Dim total As Double
            
    If level > MAX_LEVEL Then
        Bonus = 0
        Exit Function
    ElseIf level = 1 Then
        total = 0
    Else
        total = BONUS_VALUE
    End If
    
    Set rs = CurrentDb.OpenRecordset("SELECT ID FROM M_Members WHERE ParentID = 
'" & ID & "'")
    If Not (rs.EOF And rs.BOF) Then
        rs.MoveFirst
        Do While Not rs.EOF
            total = total + Bonus(rs(0), level + 1)
            rs.MoveNext
        Loop
    End If
    
    Bonus = total
    rs.Close
    Set rs = Nothing

End Function







--- In [email protected], Sumiyanto - <sumiya...@...> wrote:
>
> 
> 
> 
> 
> 
> 
> Dear rekan-rekan Access,
> 
> 
> Mohon solusi klue sintax perhitungan bonus MLM dengan sistem matrik 2 
> kiri-kanan, yang mana mekanisme perhitungannya sbb:
>                                     +-----------+
> Level 1.                              1. A
>                             +-----------+-----------+
> Level 2.                         2. B  +     3. C
>             +-----------+-----------+-----------+-----------+
> Level 3.     5. D           6. E     +     7. F           8. G
>             +-----------+-----------+-----------+-----------+ dst
> 
> A memiliki downline B & C, maka A akan mendapatkan bonus Rp5,000x2=Rp10.000
> B memiliki downline D & E, maka A akan mendapatkan bonus Rp5,000x2=Rp10.000 
> dan B mendapatkan Bonus Rp5,000x2=Rp10.000
> C memiliki downline F & G, maka A akan mendapatkan bonus Rp5,000x2=Rp10.000 
> dan C mendapatkan Bonus Rp5,000x2=Rp10.000
> perulangan ini akan berhenti/terputus pada kedalaman 3 level misalnya. 
> selanjutnya ganti B dan C kebawah yang mendapatkan perhitungan bonus.
> 
> Demikian atas solusi dan attensi rekan-rekan saya ucapkan terima kasih. 
> 
> 
> Sumiyanto
>


Kirim email ke