Я не вижу поля года, поэтому предположу, что ваши месяцы - это не календарные месяцы, а месяцы работы или что-то в этом роде.В этом случае, если месяц был правильным числом, вы могли бы просто использовать:
NZ (DLookup ("New_Leave", "TableName", "[Month] =" & [Month] -1), 0)
Если вы не хотите изменять свой дизайн, чтобы сделать месяц правильным числом, вам придется иметь дело с преобразованием текста в число:
NZ (DLookup ("New_Leave", "TableName"), "CInt ([Месяц]) =" & CInt ([Месяц]) - 1), 0)
Это не удастся, если в поле текстового месяца не указано правильное число.
Если вы на 100% уверены, что предыдущий месяц всегда будет существовать (маловероятно, когда Month = 1), вы можете покончить с частью Nz
.
Сказав все это, я думаю, что ваш общий дизайн серьезно испорчен,Надлежащим способом решения вашей проблемы является наличие таблицы с EmployeeID, Date, LeaveAmount (где отрицательное значение представляет собой заработанный отпуск или отдельное поле «Да / Нет» для представления этого).Это единственная статическая информация, которая вам нужна.Все остальное должно рассчитываться по мере необходимости в формах / отчетах, а не в ваших таблицах.