A mente fredda, dopo 1 macchinetta di caffe e un bel cornettone alla crema (alcune cose buone in ufficio esistono ancora) ho trovato una soluzione.
A parte aver sbagliato l'rdine delle date nella funzione DateDiff (per cui l'eguaglianza 50 non sarebbe mai stata possibile in quanto si ottiene un valore negativo e non positivo), ho risolto con questo:
For I = 1 To 5
Anno = Year(Now) + I
DataRif = "31/12/" & Anno
Set Rst = CurrentDb.OpenRecordset("SELECT [Cognome] FROM tblImpiegati WHERE DateDiff(""yyyy"",[NatoIl]," & CLng(CDate(DataRif)) & ")=50")
Debug.Print Anno
With Rst
If Rst.RecordCount = 0 Then
Debug.Print "Nessuno"
GoTo ProssimoAnno
End If
.MoveFirst
Do Until .EOF
Debug.Print !cognome
.MoveNext
Loop
ProssimoAnno:
End With
Rst.Close
Set Rst = Nothing
Next I
Non so se sia macchinosa o meno, ma almeno a debug ottengo i risultati che mi aspetto.
Adesso ne devo ricavare un report; proverò, nel ciclo, a inserire in una tabella temporanea di appoggio i dati ottenuti e su quella basare il report