wedstrijd uitslag berekenen.

Status
Niet open voor verdere reacties.

allard1977

Gebruiker
Lid geworden
7 feb 2011
Berichten
215
Hallo,

Tabel 1 bevat;
Naam
Arm nummer
niveau
place
Score
time.

Formulier (uitslag invoer),
Armnummer en word er gezocht in een subform naar goede armnummer.

Subform,
Naam (gekoppeld aan arm nummer juiste naam komt automatische)
Arm nummer (moet corresponderen met nummer in form uitslag invoer)
Score (invul veld)
time (invul veld)
niveau (gekoppeld aan naam juiste niveau komt automatische)

nu zou ik graag willen dat de place zelf wordt uitgerekend per niveau. ten eerste kijkend naar de sore. wie hoogste heeft nr 1 enz. en als er gelijk spel is dat er naar de tijd wordt gekeken.
en dat dit allemaal verwerkt wordt naar tabel 1. waar ik een rapport met uitslagen van kan maken.

Alvast heel erg bedankt.
 
Misschien moet je er even een voorbeeldje bij doen, want eerlijk gezegd snap ik er niet zoveel van. Rare mix van Engelstalige en Nederlandse termen, meer kan ik er niet van maken :).
Wat staat er bijvoorbeeld op het hoofdformulier?
 
hallo Allard,
in bijlage een ontwerpje voor je gestelde vraag.
is wel nog onvolledig.
vb. misschien is het nuttig/nodig om een test in te bouwen, dat 1 bepaald armnummer niet 2 x wordt ingevoerd bij de uitslagen
(bij de deelnemerslijst is dat niet mogelijk, wegens primary key)
mvg,
Duke of Earl
 

Bijlagen

  • Nieuwe gecomprimeerde (gezipte) map.zip
    64,5 KB · Weergaven: 52
Hallo
Dukeofearl heel erg bedankt met deze goede voorzet, dat is bijna helemaal wat ik bedoel. hij rekent het goed uit en plaatsing is perfect. maar ik zou het graag de plaatsing ook in de tabel hebben want aan de eind van de wedstrijd moeten wij nog een eind rapport maken wie gewonnen heeft.

heel erg bedankt alvast
 
Laatst bewerkt:
hallo Allard,

oef! :)

1. vooreerst sorry, want ik had niet gekeken naar je voorbeeld database.
heb ondertussen dan ook de niveaus aangepast naar de reële, ttz Open, Elite en Novice.

2. reactie op je bericht van 16h 04:
even wat algemene vragen: waarover gaat het eigenlijk?
een éénmalig evenement of een evenement gespreid over verschillende wedstrijden en/of dagen?
indien éénmalig evenement, kan ik gewoon een 2e rapportje maken, dat geen rekening houdt met
het niveau.

mvg,
Duke of Earl
 
Duke of Earl
Ik begrijp het principe met jou voorbeeld. Mijn wedstrijd is drie dagen met ongeveer 10 winnaars per dag. Aan het eind moet er een specifiek rapport gemaakt worden waar nog meer informatie op staat, en alleen alle spelers boven 170 moeten daar op. Het was handig als jou idee zou kunnen.
En ook als backup als de plaatsing in tabel staat kan je het er altijd weer uithalen zonder nieuwe berekening waar wat fout kan gaan.
 
hallo Allard,
stuur mij misschien even een privé E-mail.
(je vind mij terug in de gebruikerslijst onder Duke of Earl - blz. 470)

dan kunnen we de laatste vraagtekens bekijken en oplossen ?!?!

mvg,
Duke of Earl
 
Hou het gewoon in het forum, dan kan iedereen meedenken. Of mag ik niet meekijken?
 
@Octafish: sorry - wilde het forum niet overstelpen met een rits vragen en bemerkingen.
zal het niet meer doen ;)

@allard: graag een antwoordje op onderstaande vragen/stellingen.

een evenement duurt altijd 3 dagen.
hoeveel manches (wedstrijden) zijn er per dag?
na iedere manche - moet er een uitslag van die manche uitgeprint worden (per niveau) - dus 3 winnaars (Elite - Open - Novice)
- moet er, vanaf de 2e manche, ook een klassement uitgeprint worden met het totaal van de tot dan toe behaalde scores (per niveau)?

moet er, na afloop van het evenement, een over-all klassement uitgeprint worden, zonder rekening te houden met het niveau? dus slechts 1 winnaar

Gaat het hier om een éénmalig 3-daags evenement of zal dat in de toekomst nog georganiseerd worden?

mvg,
Duke of Earl
 
Oke, ik dacht met een klein voorbeeldje van mij database er te komen. Maar dat is niet gelukt. Mijn database wordt gebruik voor een honden show, rally en obedience. Voor de show loopt alles lekker. De db wordt gebruikt voor het inschrijven van de honden waar een cataloog van gemaakt wordt. Bij rally en obi wordt ook nog een loop volgorde lijst gemaakt en kan ik alles van score tijd en plaats manueel in voeren. Nu wil ik dit stukje dus automatiseren.
Het voorbeeld dat ik gepost heb is een schematische db van een grotere db.
Er worden 4 keer per jaar door ons wedstrijden gedaan maar hij wordt ook gebruikt door andere clubs.
Er moet inderdaad ook aan de eind van de dag een overall klassement komen.
Er is manch per dag.

Groet Allard
 
En ook als backup als de plaatsing in tabel staat kan je het er altijd weer uithalen zonder nieuwe berekening waar wat fout kan gaan.
Berekeningen zijn altijd gebaseerd op gegevens in tabellen. De kans dat een computer iets verkeerd uitrekent lijkt mij verwaarloosbaar klein; zeg maar vergelijkbaar met de kans dat een Rotterdamse club de komende 10 jaar kampioen wordt :(. Een backup doet daar niks aan af, want als er iets kwijt raakt, is het je tabel. En dan heb je aan de opgeslagen uitslagen ook niks meer. Je bouwt dus een verkeerd gevoel van veiligheid in, wat mij betreft.

In een eerder bericht van mij vroeg ik waarom je een subformulier had gebruikt, en wat er dan op dat hoofdformulier staat. Na je db gezien te hebben was dat een terechte vraag: je gebruikt de hoofd/subformulier constructie volkomen overbodig. Alles wat je wilt doen kan gewoon op een hoofdformulier met je keuzelijst in de koptekst.

Ik vraag me, net als Earl, ook af hoe je de wedstrijddagen vult; ik zie van je verhaal niks terug in je tabellen. Het lijkt mij handig als je een voorbeeldje maakt dat wél alle elementen bevat, want nu wordt er m.i. toch kostbare tijd gestoken in oplossingen waar je niet zoveel aan hebt. En dat is zonde van jouw tijd, en van onze tijd.
 
En om te laten zien hoe je de score in een query kunt berekenen, hier een voorbeeldje.
Code:
SELECT a.Level, a.Name, a.[Arm number], a.Score, a.time, Round(CDbl(a.[Score]+(1-a.[Time])),5) AS Points, Count(*) AS Rank
FROM Table1 AS a INNER JOIN Table1 AS b ON (Round(CDbl(a.[Score]+(1-a.[Time])),5)<=Round(CDbl(b.[Score]+(1-b.[Time])),5)) AND (a.Level=b.Level)
GROUP BY a.Level, a.Name, a.[Arm number], a.Score, a.time
ORDER BY a.Level, count(*), a.name;
 
en het hoofdformulier/subformulier. leek mij handig en snel. daar zal ik mij in verdiepen
 
Heb je mijn query al geprobeerd? Die berekent de rangorde echt al in de query zelf :). Uiteraard zie je die op het rapport dan ook weer terug. Wat je in je rapport doet is overigens niet veel anders dan een regelnummering invoeren, de techniek heeft weinig met ranglijsten te maken. Als je anders sorteert hou je dezelfde nummervolgorde, maar met andere namen. Kan niet de bedoeling zijn, lijkt mij.
 
Ik voel mij als een verdwaalde kleuter op de Champs Elysee.... Over welk formulier (tabel, query) hebben we het precies?
 
Sorry octaFish die zal ik dadelijk proberen.
oei alweer een berichtje
knop Rally
dan score form Day 1 (oeps hoofdform/subform:eek:)
hier wordt arm nummer gezocht en dan score ingevuld (tijd is iets nieuws dit moet ik nog aan passen)

of knop;
uitslag lijst, hier kan je per level(class) een uitslagrapport opmaken.

of knop;
Day1, dit is het eind rapport die uitgeprint moet worden en opgestuurd naar de hoofdzetel van de organisatie.

groet
 
Laatst bewerkt:
En nog wat: ik denk dat je je tabellen eerst eens moet normaliseren, als ik je tabellen zo zie, is daar behoorlijk wat winst te halen. Kijk maar eens naar de herhalende blokken in het plaatje. Dat blok hoort dus een gekoppelde aparte tabel te zijn.
Je kunt niet verwachten correcte berekeningen en queries te kunnen maken in een niet-genormaliseerde database.
 

Bijlagen

  • Tabel normaliseren.png
    Tabel normaliseren.png
    12,7 KB · Weergaven: 52
goedemorgen,
heb je stukje code geprobeerd in mijn voorbeeld database. maar krijg fout melding "ongeldig gebruik van null"

En de tabellen die er zo uit zien als op de afbeelding moet ik uit elkaar halen en meerdere tabellen van maken als ik het goed begrijp. dan is het niet een tabel maar worden het er 7.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan