Hulp bij tabel en formulier

Status
Niet open voor verdere reacties.

chowdella

Gebruiker
Lid geworden
18 okt 2009
Berichten
20
Hallo,

Mijn vraag is misschien voor vergevorderden heel simpel, maar ik loop even vast hoe ik dit moet doen.
Weet ook niet goed met welke woorden ik het kort moet beschrijven, dus hoop niet dat ik mensen irriteer omdat in het verleden deze vraag al gesteld is.

Ik bouw een Access bestand voor een stichting. Onze Stichting doen aan omgangsondersteuningen voor kinderen die een van de ouders niet meer ziet.
Dit betekent dat wij 2 categorie informatie moeten bewaken, namelijk, ouders en de kinderen.

Mijn bestand wil ik als volgt opzetten, maar helaas loop ik tegen een probleem op:
een tabel voor de ouders (tblOuders)maken, met de nodige gegevens erin
en een tabel voor de kinderen (tblKinderen), met de nodige gegevens.
een tabel (tblCasus) die de gegevens bij elkaar voegen uit tblOuders en tblKinderen.

Dit werkt niet, omdat ik uit tblOuders 2 keer gegevens genereer (ouders is namelijk moeder en een vader). Hij laat de gerelateerde gegevens dan niet meer zien. Eigenlijk zelfs het gehele formulier is dan blanco. Dit is nog op te lossen door een tblMoeders en tblVaders te maken, maar voor de kinderen wordt het lastig. Ene keer is het 1 kind, ander keer misschien vier.

Mijn vraag is dan ook:
Hoe kan ik het beste dit opzetten?

Ik wilde eigenlijk per zaak varierend aantal kinderen toevoegen, maar weet niet hoe ik dit moet maken (zeg maar voor ieder kind een druk op de knop en verschijnt een formulier(kinderen) om het in te vullen, die gerelateerd is aan deze record en deze ook laat zien in formulier(Casus))

Ik maak denk ik een fundamentele denkfout, misschien uit onervarenheid. Maar ik weet niet zo goed waar het hem in zit. En daarnaast ben ik niet een heel gevorderde bouwer (dus niet teveel in VBA of zo), dus uitleg in VBA-taal begrijp ik dan ook niet altijd even goed.

Hoop dat iemand mij kan helpen. Alvast bedankt voor een reactie.
 
Waarom heb je twee tabellen voor de ouders en de kinderen? In beginsel is het object Kind in mijn optiek hetzelfde als het object Ouder, namelijk een Persoon. En van personen hou je in beginsel dezelfde gegevens bij. Naast de standaard NAW gegevens neem je in de tabel dan twee extra velden op: VaderID en MoederID, en in die velden sla je dan de waarden op van de PersoonID van resp. Vader en Moeder. Als Vader bijvoorbeeld PersoonID 1201 heeft, en moeder 1425 dan sla je bij het kind in het veld [Vader] de waarde 1201 op, en bij [Moeder] de waarde 1425.
Met een query koppel je dan de gegevens aan elkaar. En op die manier heb je altijd de juiste personen aan elkaar gekoppeld. Met dit systeem kun je zelfs nog doorbouwen, door kinderen aan een kind toe te voegen; dat kind wordt dan zelf weer Ouder van dat kind.
Een Casus hang je aan één persoon (kind dus), en daar heb je dan een eigen tabel voor die je aan het record van het kind koppelt.
 
hallo, bedankt voor je reactie.

heel logisch wat je zegt. In principe moeten ze ook uit een bak kunnen.

Want wat je uitlegt over een veld VaderID die dan weer gekoppeld is met IdPersonen (in het geval zoals jij bedoeld?).
Ik doe het dan zo: Ik koppel het door in tbl ontwerp met de Wizard opzoeken te gebruiken. en de stappen volgen.
Wordt dan uiteindleijk een nemeriek veld, en slaat dan inderdaad ID nummer van IDPersonen op.
Maar als je bij betreffende persoon gaat kijken, dan zal persoonnummer 1 bijvoorbeeld moeten laten zien dat die aan 2 casus zaken gekoppeld is. dit doet hij niet.

En, aan een nummer kan niemand weten wie het is, dus moet ik ook de gegevens in Personen uiteindelijk in een formulier laten zien. Dit lukt ook niet. Ik maak er een query van en normaal kun je de gegevens van tblPersonen erin voegen, bij de Query, zodat je de info in je formulier kan opvragen.

Dit lost ook niet mijn probleem op voor het aantal kinderen. dat doorkoppelen van kinderen begrijp ik in principe, maar de uitvoering zie ik niet voor mij. Kom voor mijn gevoel zelfde probleem als hierboven tegen.
Mijn ervaring is dat ik dit dan niet nog een keer kan doen met MoederID die dan gekoppeld is aan IDPersonen. Dan geeft hij een foutmelding. Of in het formulier, zoals ik zei, is dan alles blanco.
Ik kan dus niet twee ID uit één bak genereren. Dus ik maak ergens een fout.

Misschien kom ik dan op de basale vraag, hoe koppel je met een query de twee info aan elkaar? Door allebei de tabellen erin te zetten en een nieuwe querie van te maken?

Ik heb geprobeerd een bestandje erbij te doen, een test die laat zien hoe ik dit doe. Maar dit is mij niet gelukt zo snel. Een ander moment even naar kijken.

Ik ben tot nu gewend om vrij plat te bouwen. Dit is een nieuwe uitdaging, maar moet wel heel erg leren hoe.
 
Ik snap niet helemaal wat je aan het doen bent, maar ik zou zeker geen opzoekwizard in de tabel gebruiken, al lijkt dat op het eerste gezicht oh zo aanlokkelijk. Een tabel is alleen bedoeld om gegevens te laten zien, en daarmee wil je de opgeslagen informatie zien, niet wat je te zien krijgt via een opzoeklijst (meestal een naam). Keuzelijsten maak je (veel beter) op een formulier. Dat dan uiteraard de gegevens weer opslaat in de tabel.
In de query zul je, als je mijn aanbeveling volgt, drie keer dezelfde tabel nodig hebben: één exemplaar voor het kind (de hoofdtabel voor je query, en twee kopieën die je dan de aliassen Vader en Moeder geeft. Deze twee kopieën koppel je niet via een inner Join (de standaard koppeling) maar via een Left (of Right) Join, waarbij je het PersoonsID van de Vader tabel koppelt aan het veld VaderID van het kind, en het PersoonsID van de Moeder tabel aan het veld MoederID . Simpel een kwestie van dubbelklikken op de respectievelijke koppellijnen, en de optie <Alle records van Kind, en gerelateerde records uit Vader/Moeder> selecteren. Standaard staat die koppeling op de keuze 1 (en dat is ook gelijk het enige dat ik met zekerheid kan zeggen). Je moet dus of Optie 2, of Optie 3 nemen. Welke, hangt een beetje af aan welke kant de tabel staat. Maar de opties spreken wel voor zich.
Het resultaat van deze constructie is, dat je de naamgegevens van het kind kunt selecteren, en de naamgegevens van de beide ouders. Of van één van de ouders, als de ander niet in de tabel staat. En dat is uiteindelijk ook wat je wilt zien op je formulier.
Wat je precies wilt zien is mij overigens onduidelijk:
Dit lost ook niet mijn probleem op voor het aantal kinderen. dat doorkoppelen van kinderen begrijp ik in principe, maar de uitvoering zie ik niet voor mij. Kom voor mijn gevoel zelfde probleem als hierboven tegen. Mijn ervaring is dat ik dit dan niet nog een keer kan doen met MoederID die dan gekoppeld is aan IDPersonen. Dan geeft hij een foutmelding.
Als je per kind een record maakt, en dat lijkt mij logisch om te doen, dan leg je voor elke ouder vast welke kinderen daar bij horen. 4 kinderen: 4 records, met 4 keer het VaderID in 4 keer het MoederID ingevuld. Om in een query te zien welke kinderen bij welke ouders horen, doe je ongeveer hetzelfde als hierboven, maar dan omgekeerd. Je gaat dan bijvoorbeeld uit van de MoederID, en maakt een één-op-veel relatie met (ook weer een kopie van Personen) de Alias tabel Kinderen. Eén moederrecord (PersoonID) levert gekoppeld aan MoederID dan in het voorbeeld 4 kinderen op.
Als je een te grote db hebt, die ook gezipt met Winrar (daarmee kun je deelbestanden van 100kb maken) nog te groot is, mag je hem wel naar mij mailen. Dan hak ik 'm wel in stukken :)
 
Ik begrijp het nu denk ik beter. Ik heb de relaties nooit helemaal goed onder de knie gehad. Ik ben inderdaad dit deel van het bouwen even kwijt. Het is alweer lang geleden en nooit echt heel gevorderde geweest. Ik ga ermee knutselen vanavond en/ of morgenoverdag en kijk hoever ik ermee kom!

Bedankt alvast voor dit gedeelte.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan