акцесс прекрасно считает не только дни, а что поросишь, то и считает.
поразглядывайте этот код
Sub testDateInterval()
Dim tDate1 As Date, tDate2 As Date, lngYears&, lngMonths&, lngDays&
tDate1 = DateSerial(2006, 11, 19)
tDate2 = DateSerial(2008, 1, 22)
DateToYeaRMonthDay tDate1, tDate2, lngYears&, lngMonths&, lngDays&
'длина интервала
Debug.Print lngYears&, lngMonths&, lngDays&
'дата, отстоящая от текущей на указанный интервал
Debug.Print DateSerial(Year(tDate1) + lngYears, Month(Date) + lngMonths, Day(Date) + lngDays)
End Sub
Sub DateToYeaRMonthDay(ByVal startDate As Date, ByVal stopDate As Date, _
ByRef lYears As Long, lMonths As Long, lDays As Long)
startDate = DateValue(startDate): stopDate = DateValue(stopDate)
Dim tmpDate As Date
' к-во лет
lYears = DateDiff("yyyy", startDate, stopDate)
If DateAdd("yyyy", lYears, startDate) > stopDate Then lYears = lYears - 1
'к-во месяцев
tmpDate = DateAdd("yyyy", lYears, startDate)
lMonths = DateDiff("m", tmpDate, stopDate)
If DateAdd("m", lMonths, tmpDate) > stopDate Then lMonths = lMonths - 1
'к-во дней
lDays = DateDiff("d", DateAdd("m", lMonths, tmpDate), stopDate)
End Sub