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
>