Pues depende. Pongamos que tenemos una tabla "tabla1" con dos campos "cod_prof" y "fecha_prest".
La siguiente consulta te devuelve (creo) lo que quieres:
SELECT Tabla1.COD_PROF, Tabla1.FECHA_PREST, DMax("fecha_prest","tabla1","cod_prof= '" & [cod_prof] & "' and fecha_prest <" & CDbl([fecha_prest])) AS FechaAnterior, DateDiff("d",[fechaanterior],[fecha_prest]) AS diferencia
FROM Tabla1;
Si no entiendes esto, crea una tabla con ese nombre, crea dos campos con esos nombres, introduce una serie de datos. Abre una consulta en modo diseño y vete al menu "ver" y escoge "vista SQL". Copia las líneas anteriores. Vete de nuevo al menu "ver" y escoge "vista diseño". Veras cómo se ha construido la consulta.
Con la misma tabla y los mismos campos, un formulario basado en esa tabla y con un control llamado "diferencia" (un cuadro de texto). En el evento "al activar registro" coloco el siguiente código:
Me.DIFERENCIA = DateDiff("d", DMax("fecha_prest", "tabla1", "cod_prof= '" & [COD_PROF] & "' and fecha_prest <" & CDbl([FECHA_PREST])), [FECHA_PREST])
Y ... creo que tienes el resultado que quieres.
Para más información sobre las "funciones aquí utilizadas, dirígete a Mi Foro, dónde en breve colgare un ejemplo de cada una de ellas por separado y de ellas concatenadas.
(Creo que es interesante entenderlo, para así aplicarlo correctamente en este caso y en cualquier otro que se presente.)