Получите настраиваемый предыдущий рабочий день в VBA

Я хочу указать вчерашнюю деловую дату в своем отчете в SSRS. В моем случае, если я использую функцию weekday с параметром today, и она возвращает 2 для понедельника, мне нужно уменьшить на два дня сегодняшнюю дату, в противном случае сегодняшний день должен быть уменьшен на один день.

У меня есть следующий код, но он выдает ошибки при рендеринге отчета.

=DateAdd(DateInterval.Day,CInt(IIf(Weekday(today)=2,-2,-1)),FORMAT(Cdate(today),"dd-MM-yyyy"))

Я знаю, что функция Iif возвращает тип объекта, поэтому я попытался безуспешно преобразовать его в int через CInt.

Вы знаете, как я могу получить правильную дату с этими запросами?

Произошла ошибка при обработке локального отчета. Определение отчета "название отчета" неверно. выражение значения для текстового запуска «имя текстового поля» содержит ошибку: [BC30519] Не удалось разрешить перегрузку, поскольку доступный «DateAdd» не может быть вызван без сужающего преобразования.


person alejandro zuleta    schedule 29.12.2014    source источник
comment
Вы не сказали нам, в чем ошибка.   -  person Robert Harvey    schedule 29.12.2014
comment
Попробуйте удалить FORMAT и оставить только Сегодня. Позвольте мне знать, что происходит. Функция формата возвращает строку вместе с датой. = DateAdd (DateInterval.Day, CInt (IIf (День недели (сегодня) = 2, -2, -1)), сегодня)   -  person Maciej Los    schedule 29.12.2014
comment
@RobertHarvey Я добавил сообщение об ошибке при рендеринге отчета   -  person alejandro zuleta    schedule 29.12.2014
comment
alejandrozuleta, ты сделал то, что предложил @MaciejLos?   -  person Chrismas007    schedule 29.12.2014
comment
@alejandrozuleta, спасибо;)   -  person Maciej Los    schedule 30.12.2014


Ответы (1)


Форматирование возвращает строку, не дата, поэтому вам нужно удалить функцию format из вашего оператора:

=DateAdd(DateInterval.Day,CInt(IIf(Weekday(today)=2,-2,-1)),today)

Конечно, вы можете отформатировать результат как хотите:

=Format(your_statement_here, "format_you_want")

Ура,
Мацей

person Maciej Los    schedule 29.12.2014