Infatti hai ragione, ci sono molte casistiche che io non avevo preso in considerazione.
Purtroppo io ho solo preso un file xls ho creato un semplice db dove viene mostrato se il socio ha pagato la quota annuale.
il file inizia dal 2010, ma come dici tu ci sono soci che si sono uniti anche nel 2017, e quì sorge il mio problema perchè il file ha anche la data di iscrizione e per di più anche di testo.
pertanto ho sistemato la tabella rinominandola in contatti e sistemando gli id
IDcontatto
COGNOME
NOME
DATA ISCRIZIONE (TESTO GG/MM/AAAA)
e così già ho modificato la prequery
SELECT DISTINCT c.idcontatto, p.Anno, c.cognome, c.nome, c.data_iscrizione, c.categoria
FROM CONTATTI AS c, PAGAMENTI AS p;
Ho riscritto la tabella utenti rinominandola in CONTATTI e sistemando gli ID
Sto andando avanti con le prove e la prequery ora si presenta così
SELECT DISTINCT p.IDcontatti, p.COGNOME, p.NOME, p.CATEGORIA, p.DATA_ISCRIZIONE, a.Anno
FROM contatti AS p, pagamenti AS a
WHERE (((Right([p].[data_iscrizione],4))<=[a].[anno]));