Toon posts:

Hoofdbreker WKpoule (VBA-oplossing?)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Ben net toegetreden tot dit forum omdat ik compleet vastloop met het volgende vraagstuk.
Ik organiseer al sinds jaar en dag een voetbalpoule voor mijn collega’s. Ik heb gekozen voor een formule die qua wedstrijdelement hartstikke leuk is, alleen ben ik zelf tot in de late uurtje nog bezig met turven om de tussenstanden te berekenen. Ik ben zelf een gemiddelde Acces-gebruiker en kan prima uit de voeten met tabellen, queries, formulieren en rapporten. Ik had een week geleden dan ook het plan opgevat een applicatie te ontwikkelen voor de verwerking van de poule. Hiermee loop ik echter compleet vast; Door mijn beperkte kennis moet ik veel op tabel, query en formulierniveau doen, terwijl ik het vermoeden heb dat je door een simpele VBA-instructie alles waarover ik aan het ploeteren ben kan ondervangen. Hier in het kort de opzet van mijn poule: De deelnemers moeten alle rust en eindstanden van de wedstrijden van het WK voorspellen (stand na 90 minuten). Als de rust- en eindstand beide goed zijn dan verdient men 7 punten, Als de exacte einduitslag goed is, maar de ruststand fout dan krijgt men 5 punten, Als de uitslag niet goed is, maar wel de juiste winnaar/verliezer/gelijkspel is voorspeld dan krijgt men 3 punten, en voor een goede ruststand krijg je 1 punt. Voor dit laatste geldt dat een goede ruststand in combinatie met de goede winnaar/verliezer/gelijkspel dus 1+3 punten oplevert als de einduitslag fout was. Zoals je zult begrijpen is dit nogal veel informatie om in een query of berekend veld in een formulier te krijgen. Ik loop zelf al stuk op de gegevensinvoer van de uitslagen. Moet een uitslag die uit 2 cijfers bestaat in 1 of in 2 velden worden opgeslagen om hier punten voor te laten berekenen of kan dit ook in 1 cel?
Kan iemand mij alstublieft een tip geven over de manier van benaderen voor de oplossing van dit vraagstuk. Hier zou ik je heeeeel erg dankbaar voor zijn!!

Vriendelijke groet,

Jan

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Ik kom op vier velden: eind_voor, eind_tegen, rust_voor en rust_tegen.

Zelf ben ik niet zo van de queries, dus ikzelf zou alles in VBA doen. Bijvoorbeeld zo:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Option Explicit

Type Stand
    voor As Integer
    tegen As Integer
End Type

Type Uitslag
    rust As Stand
    eind As Stand
End Type

Function BerekenPuntjes(gok As Uitslag, echt As Uitslag)
        
    Dim rustGoedGegokt As Boolean
    Dim eindGoedGegokt As Boolean
    Dim winnaarGoedGegokt As Boolean

    rustGoedGegokt = gok.rust.voor = echt.rust.voor And _
                     gok.rust.tegen = echt.rust.tegen
    eindGoedGegokt = gok.eind.voor = echt.eind.voor And _
                     gok.eind.tegen = echt.eind.tegen
    winnaarGoedGegokt = Sgn(gok.eind.voor - gok.eind.tegen) = _
                        Sgn(echt.eind.voor - echt.eind.tegen)
    
    Dim puntjes As Integer
    If eindGoedGegokt And rustGoedGegokt Then
        puntjes = 7
    ElseIf eindGoedGegokt Then
        puntjes = 5
    ElseIf winnaarGoedGegokt And rustGoedGegokt Then
        puntjes = 4
    ElseIf winnaarGoedGegokt Then
        puntjes = 3
    ElseIf rustGoedGegokt Then
        puntjes = 1
    Else
        puntjes = 0
    End If
    
    BerekenPuntjes = puntjes
End Function

[ Voor 8% gewijzigd door Daos op 24-05-2006 18:18 . Reden: van uitslag een type gemaakt zodat code overeenkomt met verhaaltje erboven ]