Beginnersvraag

Status
Niet open voor verdere reacties.

DJ.Funny

Gebruiker
Lid geworden
17 jan 2006
Berichten
113
Beste Leden,


Totaal nieuw in Access, maar ik denk spring gelijk ff in het diepe!

Ik heb een databasje gemaakt met een aantal tabellen. Hierin wil ik een sponsorloop (kinderen lopen voor het goede doel en worden gesponsord per ronde of vast bedrag) gaan bijhouden.

Tabellen al gemaakt met joins, echter probeer ik nu een formulier aan te maken waarin je een leerling invoerd voornaam achternaam klas (= waarde uit een andere tabel) echter wanneer ik klas selecteer in een selectbox dan kan ik alleen maar de betreffende waarde koppelen aan Voornaam of Achternaam :confused:

Database voeg ik bij!!

Zoals je ziet echt een beginneling !!!! ;)
 

Bijlagen

Voor een eerste poging ben je lekker bezig :thumb:. Maar een paar basis fouten zitten er vrees ik wel in, dus laten we die gelijk maar even doornemen. Het lijkt met het handigst als je die zelf probeerrt op te lossen, want daar leer je het meeste van :).

1. Het formulier [Leerlingen invullen] (ik zou overigens de naam veranderen; leerlingen bekijken is hetzelfde als leerlingen invullen, dus dat doe je op hetzelfde formulier) bevat maar 2 velden. Je kunt dus de klas niet invullen:
Oplossing: koppel gewoon de tabel [Leerlingen] aan het formulier en niet een halve query. Sowieso biedt een query voor dit formulier geen enkele winst, dus waarom überhaupt een query?

2. De tabel [Geslacht] mag an sich wel, maar gebruik ik zelf nooit. De reden: je hebt zelden meer dan 2 geslachten nodig. Ik kan er hooguit nog één bij bedenken, en dan heb je het wel gehad.
Alternatief: Gebruik Lijst met waarden, en geen tabel. Vul vervolgens de 2 of 3 waarden met de hand in. Kun je ook gewoon een tekstveld gebruiken. Hou het simpel, kortom :).

3. Je hebt nutteloze relaties gemaakt; relaties hebben pas zin als je Referentiële integriteit afdwingt. Dat doe je nu niet, en dan kun je net zo goed [GeslachtID] aan [Aantal ronden] koppelen. Ja, dat is net zo zinloos :).
Handeling: Dubbelklik op de relatielijnen, en zet <Referentiële integriteit afdwingen> aan. Lukt dat niet, (kun je niet opslaan) dan heb je sowieso een groot probleem met de koppeling.

4. Hoeft geen probleem te zijn, maar ik leg het probleem maar even voor.... Een leerling zou (in mijn ogen) meerdere sponsoren moeten kunnen hebben (dat kan ook nu) maar andersom moet dat volgens mij óók kunnen, en dat kan nu niet! Dus iemand die al een leerling sponsort, kan niet nog iemand sponsoren. Ik zou dat aanpassen door er een extra tabel tussen te hangen. Hou zo'n systeem zo flexibel mogelijk, want je moet toch kunnen uitbreiden!

5. Sluit op 4 aan: hoe vaak zou je zo'n sponsorloop willen kunnen gebruiken? Nu kan dat maar één keer, want je slaat de verschillende jaargangen niet op. Dus volgend jaar kun je opnieuw beginnen!
Ik zou de db dus zodanig uitbreiden met extra tabellen dat je ook meerdere sponsorlopen kunt invoeren.

6. Je hebt nu 2 velden voor één ding: het bedrag. Dat zou ik anders doen en ik zou dus eén valutaveld maken voor bedrag, en een extra veld (met keuzelijst) waarin je de verschillende sponsoropties vastlegt. Dus nu: <per ronde> + <Vast bedrag>. Kun je ook heel makkelijk straks berekeningen maken, wat nu een stuk lastiger wordt, en je kunt ook andere acties vastleggen, zoals <per kwartier> etc.
 
Off topic:
2. In die veronderstelling was ik ook, maar bij sommige instanties blijken ze er 7 te hanteren! :shocked:
 
Laatst bewerkt:
Beste OctaFish,


Super blij met uw commentaar!! Heb gelijk e.e.a. aan aanpassingen gemaakt.

Blijf alleen tegen het probleem van die formulieren aanlopen?!

Ik wil bijvoorbeeld een leerling invullen en daarbij Klas 1Dt alleen heb ik het idee dat dit met een formulier moet?? Maar ik heb in mijn hoofd zitten dat wanneer ik met een checkbox aangeef bij leerling Flippie Flink dat hij in 1Dt zit dat ik dan het Klassen ID automatisch gevuld moet worden door de join?? MAar dat lijkt niet te werken :-(
 

Bijlagen

Je bent gelijk wel heel erg enthousiast aan de slag gegaan met tabellen :). En je hebt wat teveel tabellen aan elkaar geknoopt. Zo hoort het veld SchoolID m.i. niet thuis in de tabel [Sponsorloop] want een sponsorloop heeft in beginsel niks met een school te maken. Athans niet in die tabel. En in [Leerlingen] heb je nu een veld KlasID staan wat er niet meer in thuis hoort, want klassen (een leerling volgt er meerdere, niet 1) sla je op in [Klasindelingen]. De tabel [Ronden] hangt nu ook verkeerd, want wat een leerling doet is afhankelijk van de betreffende sponsorloop, niet van de leerling. Dus in [Ronden] moet je het veld [LeerlingID] vervangen door [DeelnameID]. Want daarin leg je vast welke leerling welke sponsorloop doet, en daardoor weet je dus hoeveel ronden er worden gelopen.
Ik heb wat aanpassingen gedaan in de bijlage; kijk maar of je er wat mee kunt :).
 

Bijlagen

Zo super bedankt!!

Duizelt een beetje voor mijn ogen :shocked: maar kan het voor een groot deel volgen. Bedoeling is om voor onze stichting (wij doen mee aan de RopaRun) meerdere sponsorlopen bij scholen te organiseren ;). Dus die tips van u komen goed uit!!

Ben best handig met Excel maar dit moet toch echt een Access ingetje worden en heb me om laten kletsen van dat doe ik wel even :confused:

Maar vind het heel leuk om te doen!!

Ga er morgen weer eens verder mee kijken want ik heb het idee dat ik met een formulier in 1 keer heel veel velden kan laten invullen!

Bijvoorbeeld: In 2015 loopt Pietje Puk voor het griendencollege klat 1Td een sponsorloop enzovoort enzovoort! Ik heb heel veel aan uw aanwijzingen en ga eens betueren wat u allemaal precies gedaan heb!!

Had in mijn hoofd dat ik zonder enige kennis van Access dit wel in 2 dagen voor elkaar zou krijgen :D:D:D:D
 
Volgens mij ga ik me morgen eens storten op het fenomeen SubFormulieren :shocked::D:rolleyes:
 
Had in mijn hoofd dat ik zonder enige kennis van Access dit wel in 2 dagen voor elkaar zou krijgen
Je zou de eerste zijn :). En ik zou accuut ophouden met Access, want dan heb ik mijn meester (eindelijk...) gevonden :D.

Subformulieren zijn heel handig, omdat je vanuit (bijvoorbeeld) een leerling kunt zien welke lopen hij/zij doet (formulier [Deelname] op formulier [Leerling] zetten), welke leerlingen op een school zitten (formulier [Leerling] op formulier [School] zetten), welke deelnemers er zijn voor een bepaalde loop (formulier [Deelname] op formulier [Sponsorloop] zetten) en zo voort. Maar zorg er eerst voor dat je tabellenstructuur klopt, en dat je de gegevens die je wilt kunnen zien er uit komen. Dan komen daarna de formulieren wel. Het enige bestaansrecht van databases is namelijk niet om er gegevens in te pleuren (dat kan iedereen maken) maar om de juiste gegevens er uit te halen. En dat maakt het ontwerpen van een database ook zo moeilijk, want je moet het eindresultaat als uitgangspunt nemen. En de meeste (zeker beginners) mensen kunnen dat maar nauwelijks. 't Is ook niet voor niets één van de betere baantjes in de ICT :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan