Buona giornata, Laura;
avrei preferito affidare la classifica ad un canonico codice SQL ma, almeno per il momento, dovrai accontentarti di una proposta con campi calcolati che non rispettano le regole di ACCESS però dovrebbero (il condizionale è d’obbligo) funzionare; consideralo come un “rappezzo” in attesa che qualche Utente fornisca il codice SQL; speriamo che non mi caccino dal Forum...per idegnità .
Sono partito con due Tabelle: Società e Gare.
In Società ho inserito i seguenti campi:
Id; Campo Contatore (Chiave primaria) non è indispensabile (è una mia regola).
Società; Campo Testo: Dimensioni campo, 50 caratteri – Indicizzato, Si (Duplicati non ammessi)
Punti; Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
Per completezza, anche se non sono indispensabili, ho aggiunto:
RF (Reti fatte); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
RS (Reti subite); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
PV (Partite vinte); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
PP (Partite perse); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
PX (Partite pareggiate); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
In Gare ho inserito i seguenti campi:
Id; Campo Contatore (Chiave primaria) non indispensabile
Casa; Campo Testo: Dimensioni campo, 50 caratteri – Indicizzato, Si (Duplicati ammessi)
Ospite; Campo Testo: Dimensioni campo, 50 caratteri – Indicizzato, Si (Duplicati ammessi)
RC (Reti Squadra di Casa); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
RO (Reti Squadra Ospite); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
PC (Punti Squadra di Casa); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
PO (Punti Squadra Ospite); Campo Numerico: Intero – Decimali, 0 – Valore predefinito, 0
Per completezza, anche se non sono indispensabili, ho aggiunto:
Gara; (numero della gara, 1 A, 2 A, n A…1 R, 2 R, n R) ; Campo Testo: Dimensioni campo: 6 caratteri
Giornata; (numero della giornata di gara, 1 A, 2 A, n A…1 R, 2 R, n R) ; Campo Testo: Dimensioni campo: 4 caratteri
Data; (data della gara) ; Data estesa.
Ho impostato due maschere:
Società con i campi [Società] e [Punti]
Al campo [Società] ho attribuito il seguente evento:
Private Sub Società_GotFocus()
On Error GoTo 10
If Flag = 0 Then End
DoCmd.FindRecord SOC, , False, , False
[Punti] = [Punti] + Points
Points = 0
10:
End Sub
Gare; in Gare ho inserito due Caselle combinate (Squadra Casa e Squadra Ospite che puntano su “Società” e ho calcolato [PC] e [PO] con evento “Dopo inserimento” dei valori nei campi [RC] e [RO]; inoltre ho inserito un Pulsante di comando [Aggiorna].
Al Pulsante [Aggiorna] ho attribuito il seguente evento:
Public Points As Byte, Flag As Byte
Public SOC As String
Private Sub Aggiorna_Click()
Flag = 1
Cas
Osp
Flag = 0
DoCmd.GoToRecord , , acNext
End Sub
Sub Cas()
On Error GoTo 10
SOC = [Casa]
Points = [PC]
Application.Echo False
DoCmd.OpenForm "Società"
DoCmd.Close acForm, "Società", acSavePrompt
10:
End Sub
Sub Osp()
On Error GoTo 10
SOC = [Ospite]
Points = [PO]
DoCmd.OpenForm "Società"
DoCmd.Close acForm, "Società", acSavePrompt
Application.Echo True
10:
End Sub
Ho aperto una Query “Classifica” con riferimento alla Tabella “Società” con i campi:
[ID]
[Società]
[Punti] Ordinamento: Decrescente.
Mi pare che funzioni.
Sono stato troppo prolisso, mi scuso.
Buona giornata e buon lavoro.