2016-04-27 4 views
0

Мне нужно работать с базой данных, которая возвращает строковые данные, которые являются как альфа-символами, так и также использует числовые символы. Например, 1 запись может возвращать строку «1000», следующая может вернуть строку «blah». Все альфа-строки всегда будут «Blah».Почему это сравнение сравнения IIF

Когда возвращается числовая строка, я хочу отформатировать ее как валюту, и если она альфа-шоу «Бла».

Это то, что я пробовал, и это вроде работает ???

=IIf(IsNumeric(First(Fields!MyField.Value, "DataSet1")), FormatCurrency(First(Fields!MyField.Value, "DataSet1")) ,"Blah") 

Если значение MyField является строкой, которая является числовым, такие как «1000» он отформатирован по отчету в $ 1,000.00. Однако, если значение MyField «blah», отчет показывает «ERROR»

Может ли кто-нибудь объяснить, почему я вижу это странное поведение?

Благодаря Перри

ответ

2

Оба условия в IIf выражения всегда вычисляются так что проблема возникает, когда FormatCurrency("blah") оценивается даже если IsNumeric("blah") возвращение False.

Вы можете решить эту проблему, используя ту же логику в custom code, где вы можете использовать полный код If/Then/Else.

+0

Большое спасибо, что решили проблему – Perry

Смежные вопросы