zoeken in de zelfde tabel

Status
Niet open voor verdere reacties.

passion142

Nieuwe gebruiker
Lid geworden
17 feb 2010
Berichten
1
hallo, ik ben vrij nieuw met access. heb momenteel access 2007.
ik zit met het volgende uitdaging.

heb een tabel gemaakt met de volgende veldnamen en gegevenstypes.
---
ID -> Primaire sleutel
fam_nr -> numeriek (geen duplicaten)
fam_sub_nr -> numeriek (duplicaten ok)
fam_naam -> tekst
fam_achternaam -> tekst
fam_geslacht -> tekst
fam_geboortedatum -> datum/tijd
---

heb in deze tabel een aantal families toegevoegd.
en in deze tabel een persoon als hoofd familie aangewezen en met fam_sub_nr wordt dan naar de hoofd (fam_nr) verwezen.
elke persoon in de familie heeft een eigen fam_nr behalve de hoofd van de familie zijn de andere familie leden met fam_sub_nr gekoppeld aan de hoofd (fam_nr)


nu wil ik met behulp van een query bv familie 1 zoeken maar tevens de echtgeno(te) en de kinderen daaronder weergeven.

of weet iemand een betere oplossing. alvast bedankt
 
Recursie

Je kan dit oplossen door een query, en een recursieve functie.
De query haalt in eerste instantie de records op waarbij het fam_sub_nr leeg is en daarna alle kinderen.

In pseudocode:
Code:
public sub RetrieveRecords(optional lngFamSubNummer as long = 0)

  dim strSql as string
  dim rst as recordset
  if lngFamSubNummer = 0 then
      'Haal de parent op.
      strSql = select * from tabelnaam where fam_sub_nr is null
  else
      'Haal de kinderen op
      strSql = select * from tabelnaam where lng fam_sub_nr = lngFamSubNummer
  endif

  set rst = currentdb.openrecordset(strsql)

  do while not rst.eof
      debug.print rst.fam_nr, rst.fam_naam
      RetrieveRecords rst.fam_nr
      rst.movenext
  loop

end sub
Aanroepen in het immediate window met
Code:
RetrieveRecords
Dit is globaal het idee.

Succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan