При проверке пустых значений (null) вместо встроенной условной функции IIf() удобнее использовать тернарный оператор:
<булево условие> ? <выражение, которое вычисляется если условие = true> : <выражение, которое вычисляется если условие = false>
На примере со скриншота ниже результатом выражения будет прочерк если дата пустая (null), а если дата не пустая, то она будет отформатирована.
Проверка пустого значения при форматировании.
Например, для формирования строки с периодом можно использовать такое выражение:
за период с [IsNull("FilterPeriodFrom")?"-":FormatDateTime([FilterPeriodFrom])] по [IsNull("FilterPeriodTo")?"-":FormatDateTime([FilterPeriodTo])]
Преимущество тернарного оператора
При использовании функции IIf() сначала вычисляются все три выражения (булево условие, выражение для true и выражение для false), а затем выбирается нужное выражение в зависимости от условия. Таким образом, если вы хотите отформатировать дату, как в примере выше, то для значения null форматирование вызовет ошибку. При использовании тернарного оператора сначала вычисляется условие, а потом, в зависимости от него, вычисляется только одно из двух выражений. Поэтому для значения null форматирование не будет выполнено, и ошибка не возникнет.