Ciao Osvaldo, cerco di essere più ordinato.
Nella tabella "tblINCONTRI" ho i seguenti campi:
IDincontro; (Contatore)
giornata; (Casella di testo) 1^ giornata; 2^ giornata; 3^ giornata ecc. ecc.
Pnumero; (Casella di testo) è il numero della partita
GiocatoreA; (Casella di testo) è il giocatore col Bianco
GiocatoreB; (Casella di testo) è il giocatore col Nero
DinP1; (Data/ora) data di inizio della partita
DfinP1; (Data/ora) data termine della partita
RisultatoA; (Casella di testo) Risultato del giocatore col Bianco
RisultatoB; (Casella di testo) Risultato del giocatore col Nero
DataUltimoAggiornamento; (Data/ora) mi serve per vedere quando ho fatto l'ultimo inserimento
PartitaFinita? (SI/NO (Casella di controllo)); mi serve per filtrare le partite finite o no e per calcolare i punteggi.
maschera"MscINCONTRI".
Poi ho le seguenti Query per calcolare i punti.
1. "QryRisultati" che contiene i campi:
giornata
- Pnumero
- GiocatoreA
- GiocatoreB
- DinP1
-DfinP1
- RisultatoA
- RisultatoB
- Partita finita?
- Vincitori:IIF([Partita finita ?]=0;"";IIF([RisultatoA]=[RisultatoB];"";IIF([RisultatoA]>[RisultatoB];[GiocatoreA];[GiocatoreB])))
- Perdenti:IIF([Partita finita ?]=0;"";IIF([RisultatoA]=[RisultatoB];"";IIF([RisultatoA]<[RisultatoB];[GiocatoreA];[GiocatoreB])))
- PareggioA: IIF([Partita finita ?]=0;"";IIF[RisultatoA]=[RisultatoB];[GiocatoreA]))
- PareggioB: IIF([Partita finita ?]=0;"";IIF([RisultatoA]=[RisultatoB];[GiocatoreB]
- PuntiA: IIF([RisultatoA]=[RisultatoB];"0,5";IIF([RisultatoA]>[RisultatoB];1;0))
- PuntiB: IIF([RisultatoB]=[RisultatoA];"0,5";IIF([RisultatoB]>[RisultatoA];1;0))
- Esito: IIF([Partita finita ?]=0;"N";IIF([RisultatoA]=[RisultatoB];"P";IIF([RisultatoA]>[RisultatoB];"A";"B"))).
Poi ho una query di unione "TabellaPunteggi" che mi calcola i punteggi (scritta in SQL).
SELECT Pnumero as Numero, vincitori as Giocatori, iif(esito="a",puntiA,PuntiB) as Punti, 1 as Giocate, 1 as Vinte, 0 as Pareggi, 0 as Sconfitte
from QryRisultati
Where esito<>"P"
union
SELECT Pnumero as Numero, perdenti as Giocatori, iif(esito="a",puntib,Puntia) as Punti, 1 as Giocate, 0 as Vinte, 0 as Pareggi, 1 as Sconfitte
from QryRisultati
Where esito<>"P"
union
SELECT Pnumero as Numero, pareggioA as Giocatori,puntiA as Punti, 1 as Giocate, 0 as Vinte, 1 as Pareggi, 0 as Sconfitte
from QryRisultati
Where esito="P"
UNION SELECT Pnumero as Numero, pareggioB as Giocatori,puntiB as Punti, 1 as Giocate, 0 as Vinte, 1 as Pareggi, 0 as Sconfitte
from QryRisultati
Where esito="P";
Infine una query "TabellaPunteggiTotali"
SELECT TabellaPunteggi.Giocatori, Sum(TabellaPunteggi.Punti) AS Tot_Punti, Sum(TabellaPunteggi.Giocate) AS Tot_Giocate, Sum(TabellaPunteggi.Vinte) AS Tot_Vinte, Sum(TabellaPunteggi.Pareggi) AS Totale_Pareggi, Sum(TabellaPunteggi.Sconfitte) AS Tot_Sconfitte
FROM TabellaPunteggi
GROUP BY TabellaPunteggi.Giocatori
HAVING (((Sum(TabellaPunteggi.Punti)) Is Not Null))
ORDER BY Sum(TabellaPunteggi.Punti) DESC;
(questa query non è scritta in SQL, te l'ho messa io per descrivertela meglio)
che riceve i dati dalla query "TabellaPunteggi" e che poi mi manda i dati alla mia maschera "Classifica generale".
Qualcosa sicuramente è migliorabile ma con gli aiuti da parte di persone come te e le mie poche capacità sono riuscito ad ottenere questo. (e per me è già molto).
Scusa se mi sono dilungato.
Ciao.