Le estas diciendo al Locate que busque en el campo DNI los que sean igual al string 'DNI', y en el campo FECHA los que sean igueales al string 'FECHA'
Es decir estas haciendo esto
Código SQL
[-]
SELECT * FROM Calendarios WHERE Fecha = 'FECHA' AND DNI = 'DNI'
Código Delphi
[-]
adodatasetcalendario.locate('DNI;FECHA',Vararrayof([DNI, FECHA]),[loCaseInsensitive, loPartialKey])
Le saque las '' a DNI y FECHA en el VarrArrayOf
Proba asi y contanos