Avatar billede tigerdyr2007 Praktikant
26. august 2016 - 20:48 Der er 2 kommentarer

Fremsøg og visualiser familie af recordsets fra én tabel med VBA/SQL/recusivitet

Jeg har lidt svært ved lige at gennemskue hvordan jeg skal løse følgende opgave.
Udgangspunktet er et ID nummer. Dette ID kan være baseret på "erfaring", og derfor være et child. Hvis det er et child er det registeret hvem der er "parent". Der er på parent ID ikke registreret evt. childs. (flertal!)

Eksempel på data: én tabel:
ID | ParentID | Flere data kolonner herudaf...
1 | Null / 0
2 | 1
3 | 2
4 | 3
5 | Null / 0
6 | 2
7 | Null / 0
8 | 7
9 | Null / 0

Jeg har brug for at udtrække de childs der findes til et givent ID, og f.eks. gemme data i en "søgetabel", som kunne være således (fra ovenstående eksempeldata, hvor der er søgt på ID = 2):

ID | child
2 | 3
3 | 4
2 | 6

Det kunne nemt gøres via en SQL forespørgsel. Mit problem er jeg er nødt til at gøre det recursivt indtil jeg når "enden af en gren", osv.
Jeg kunne også godt tænke mig i samme ombæring måske at finde alle "parents", men her er "sporet" noget nemmere med en recursiv Dlookup() og lidt logik.

Et bonusspørgsmål. Nogen som kender til en smart måde at visualisere ovenstående data efter en søgning med f.eks. "2" i midten, og en stribe "arme" ud, som angiver childs, og childs-childs osv.? Findes der noget standard modul til det i Access / VBA, som en semi-amatør som mig kan implementere?
Avatar billede arne_v Ekspert
26. august 2016 - 22:09 #1
Jeg tror at du er noedt til en programmatisk rekursiv loesning.

Den eneste database der kan goere det smart er mig bekendt Oracle.
Avatar billede bvirk Guru
29. august 2016 - 11:28 #2
Hvis blot childs skal findes behøver det ikke ske recursivt - det er dem hvis parent <> null og omvendt er dem med parent=null ikke childs.
Der findes en treeview control og sample kodelinier på micrisoft eller msdn sites der fint laver treeview visualisering - det er faktisk ikke svært at gå til når man lige sætter sig ind i tankegangen - og ja - det er recursivt nedstigning
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester