gegevens uit het formulier koppelen aan de tabel

Status
Niet open voor verdere reacties.

foli

Gebruiker
Lid geworden
13 mrt 2008
Berichten
28
Hey allemaal,

In mijn database voor de tijdregistratie van onze loop kan je in een formulier "inschrijvingen" een keuze maken aan welke wedstrijd je wil deelnemen.(6km,11km of 16km)(ja/nee veldjes)
Gepaard aan deze keuze wordt in het formulier de te betalen deelnameprijs weergegeven. De deelnameprijs is een veld in de tabel "Persoonlijke gegevens" maar is in het formulier gebasseerd op een IIf functie. Hierdoor worden de gegevens niet opgeslagen in de tabel. Ik weet dat je in de IIf functie moet verwijzen naar het veld in de tabel. Maar blijkbaar lukt dat niet.

Dit is de IIf functie van het veld "Deelname"in het formulier:
=IIf([6 km]<0;[Persoonlijke gegevens]![Deelname]=5;IIf([11 km]<0;[Persoonlijke gegevens]![Deelname]=5;IIf([16 km]<0;[Persoonlijke gegevens]![Deelname]=5;0)))

Weet iemand hoe deze gegevens wel kunnen opgeslagen worden in de tabel?

Voor alle duidelijkheid: Op het formulier toont het veld "Deelname" wel de juiste gegevens met IIf functie: =IIf([6 km]<0;5;IIf([11 km]<0;5;IIf([16 km]<0;5;0)))

Alvast bedankt voor een reactie.


Foli
 
Laatst bewerkt:
Eerst maar even over je opzet: die is nodeloos ingewikkeld. En daarmee zet je jezelf voor (weliswaar niet onoverkomelijke) problemen, die helemaal niet nodig zijn. Want waarom dit?
(6km,11km of 16km)(ja/nee veldjes)
Ik ga er maar even vanuit dat een persoon zich maar voor één wedstrijd kan inschrijven. Dan is een keuzelijst een veel betere optie. Ik zou, als je meer wedstrijden wilt beheren, ook een aparte tabel maken voor de wedstrijden, en een aparte tabel voor de te lopen afstanden (uiteraard te koppelen op WedstrijdID). In die laatste tabel kun je dan per wedstrijd/te lopen afstand het inschrijfgeld en (uiteraard) de afstand, startplaats, starttijd etc. opslaan. Op je formulier kies je dan met de keuzelijst de afstand, en de rest weet je dan ook gelijk.

Is er een reden om de bedragen op te slaan? Dat is namelijk ook helemaal niet gebruikelijk in een database; een (standaard)regel is dat gegevens die herleid kunnen worden uit andere gegevens niet worden opgeslagen. Dat levert namelijk alleen maar overbodige informatie op, die de db nodeloos groot maakt. Kortom: eigenlijk is je vraag overbodig, want je hoeft het bedrag niet op te slaan...
 
Octafish,

Het zijn idd 2 wedstrijden die in een keuzelijst staan. De eerste wedstrijd is de 6km en een tweede wedstrijd is dan 11 of 16 km. Dat wou ik ook maar even duidelijk maken tussen de haakjes.
Het veld Deelname is maar een voorbeeld. Ik heb hetzelfde probleem met die keuzelijst van de wedstijd. Als je bv 6km aanduidt, komt op het formulier onmiddellijk 'wedstrijd 1' te zien in het veld 'Wedstrijd'. Maar in de tabel wordt die wedstijdkeuze niet overgenomen.
Is het toch nog mogelijk om misschien een oplossing te formuleren?
 
Nu ben ik nog meer in verwarring; je gebruikt dus wèl een keuzelijst, maar voor hetzelfde onderwerp ook nog extra selectievakjes? Zou ik de db maken, dan zou de opdrachtgever met heel bijzondere argumenten aan moeten komen wil ik dat zo maken.... Want ik kan toch niet anders zien als drie wedstrijden. Wat staat er dan in de keuzelijst aan mogelijkheden? En waarom sla je de gegevens van de keuzelijst niet op in de tabel? Want dat lijkt mij niet zo'n groot probleem: de keuzelijst koppelen aan het juiste veld.
Maak anders eens een voorbeeldje, want ik snap er steeds minder van!
 
Laatst bewerkt:
Hey OctaFish,

Ik stuur je even het programma door dan kan je het bekijken en misschien snap je me dan.
Het is een programma gescreven door iemand anders dat ik nu probeer aan te passen aan mijn wedstrijd.
Alles werkt, buiten de tijdsregistratie. Daarvoor heb ik dus dat veld "6km of 11/16 km" nodig in de tabel.
Hopelijk kan je me verder helpen.
Alvast bedankt voor de moeite.

Nu ben ik og meer in verwarring; je gebruikt dus wèl een keuzelijst, maar voor hetzelfde onderwerp ook nog extra selectievakjes? Zou ik de db maken, dan zou de opdrachtgever met heel bijzondere argumenten aan moeten komen wil ik dat zo maken.... Want ik kan toch niet anders zien als drie wedstrijden. Wat staat er dan in de keuzelijst aan mogelijkheden? En waarom sla je de gegevens van de keuzelijst niet op in de tabel? Want dat lijkt mij niet zo'n groot probleem: de keuzelijst koppelen aan het juiste veld.
Maak anders eens een voorbeeldje, want ik snap er steeds minder van!
 
Laatst bewerkt:
Eerst de bijlage...

't Probleem is dat je volledig gelijk hebt met die uitklaplijst. Maar aangezien iemand anders deze database heeft gemaakt, zal de tijdsregistratie niet meer werken met die uitklaplijst. Want ik ken niets van VBA. Dus probeer ik het op een anders manier op te lossen.
 

Bijlagen

  • Nekkerloop test.rar
    97,4 KB · Weergaven: 13
Het is altijd lastig om een db van iemand anders aan te passen; zeker als het ook nog eens slecht gedocumenteerd is. Ik kan er nu niet naar kijken, want het is een 2007 db. Dus dat wordt vanavond. Tenzij je er een 2003 variant van kan maken?
 
Voor iemand die mij wil vooruit helpen zet ik de database graag over naar 2003.
 

Bijlagen

  • Nekkerloop test.rar
    96,2 KB · Weergaven: 11
Ik heb nog niets aan je formulieren gedaan, maar wel de opzet enigszins 'verbouwd', zodat hij wat meer aan de basisprincipes voldoet. Kijk maar eens of je hier mee kan leven ;) Het idee is, dat je de gegevens zoveel mogelijk splitst in logische tabellen, zodat je veel beter straks gegevens kunt invullen/terugvinden en berekenen. Ik vermoed nu overigens dat je maar voor één (wedstrijd)loop organiseert, dus je kunt een hoop data al als standaard invullen. Dat scheelt uiteraard weer met het aanmaken van projecten (i.c. wedstrijden).
 

Bijlagen

  • Nekkerloop test.rar
    96,7 KB · Weergaven: 10
Ik volg je logica helemaal, maar volgens mij staan er nu veel dubbele gegevens in. Zoals betaald, deelnameprijs, aankomsttijd,... Deze worden vermeld zowel bij persoonlijke gegevens als in de tabel deelnamegegevens. Ze moeten toch enkel bij deelnamegegevens staan h�?

De tabellen wedstrijdgegevens en wedstrijdafstanden worden gekoppeld met een 1 op 1 relatie. Ik heb op de Nekkerloop 3 afstanden. Moet dit dan ook geen 1 op veel relatie worden?
 
Ik teste en deed ook wat aanpassingen. Mijn vraag is nu wel hoe ik de tijdsregistratie hierop ga toepassen?
 

Bijlagen

  • Nekkerloop test.rar
    99,1 KB · Weergaven: 7
Je hebt uiteraard gelijk; ik heb kopieën gemaakt van de tabel [Persoonlijke gegevens] om de overige tabellen te maken. Dat houdt dan wel in, dat de overbodige gegevens uit die tabel weg moeten. In de tabel Deelnamegegevens staat een unieke index op wedstrijdid, die weg moet omdat je anders geen één-op-veel relatie kunt maken. En dan ben je er. Het idee is dat de tabel [Persoonlijke gegevens] de gegevens van de deelnemers bevat, de tabel [Wedstrijden] de algemene wedstrijdgegevens, zoals datum en organisatie, en de tabel [Wedstrijd_Afstanden] de gegevens voor de afzonderlijke wedstrijdonderdelen, zoals inschrijfgeld (is afhankelijk van de afstand) en starttijd (ook afhankelijk van de afstand).
Omdat ik (gek genoeg ;) ) ook nog af en toe wat voor de baas moet doen, gooi ik nog wel eens wat (te) snel een dbtje over de schutting...
 
Bij de start van een reeks zou ik via een knop op het formulier 'tijdsregistratie' het startuur willen vastleggen. Bij het aankomen van de lopers zou ik gewoon het rugnummer willen ingeven waarbij onmiddellijk de eindtijd wordt ingevuld in de tabel 'deelnamegegevens', die ik dan kan gebruiken om de nodige raporten af te drukken. Nummers die dubbel worden in gegeven of niet bestaan in de lopende reeks moeten in een aparte tabel 'tblAnomalie' worden opgeslagen zodat je onmiddellijk kan zien welke nummers verkeerd zijn ingegeven met welke aankomsttijd. Zo zijn eventuele missingen snel aan te passen.
 

Bijlagen

  • Nekkerloop test.rar
    94 KB · Weergaven: 17
Heb dat nog niet aangemaakt omdat ik niet weet hoe ik eraan moet beginnen.
Met welke tabel zal ik het formulier koppelen?
Moet het formulier gekopeld worden of gebeurd alles via VBA?
 
Je moet eerst bedenken welke gegevens je op wilt slaan, en op basis daarvan maak je de tabel, en vervolgens het formulier. Dat kan in beginsel gewoon aan een tabel worden gekoppeld; met wat keuzelijsten voor de deelnemers bijvoorbeeld.
 
Ok dat begrijp ik wel. Maar hoe kan ik de starttijd automatisch laten verschijnen in een tabel bij de start van de wedstrijd? Nadien moet deze functie nog eens uitgevoerd worden bij het ingeven van de rugnummers. Indien de rugnummer reeds in de tabel voorkomt moet er een foutmelding gegeven worden.(Rugnummer=nummerieke sleutel?) Nadien moet de starttijd van de aankomsttijd afgetrokken worden zodat de gelopen tijd overblijft. Die moet dan in de tabel met rugnummer ingevuld worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan