Во-первых, всегда обрабатывайте даты как даты , а не строки, не числа, не исключения.
Затем, чтобы найти прим предыдущей недели, вы можете использовать:
PrimoPreviousWeek = DateWeekFirst(DateAdd("ww", -1, Date()))
с помощью:
Public Function DateWeekFirst( _
ByVal datDate As Date, _
Optional ByVal lngFirstDayOfWeek As VbDayOfWeek = vbUseSystemDayOfWeek) _
As Date
' Returns the first date of the week of datDate.
' lngFirstDayOfWeek defines the first weekday of the week.
DateWeekFirst = DateAdd("d", vbSunday - Weekday(datDate, lngFirstDayOfWeek), datDate)
End Function
Также используйте специальное форматирование строковых выражений для значений даты:
Set rst = CurrentDb.OpenRecordset("SELECT Day, FiscalMonth, FiscalYear from tbl_Calendar where FiscalYear = (SELECT FIscalYear from tbl_Calendar where day = #" & _
Format(forDate, "yyyy\/mm\/dd") & "#) and FiscalMonth = (SELECT FiscalMonth from tbl_Calendar where day = #" & _
Format(forDate, "yyyy\/mm\/dd") & "#)")
Затем выполните полное переписывание вашего кода, чтобы использовать тип данных Дата и никаких строк.