2014-12-02 35 views
0

我有一个表格,其格式如下20141230 yyyyMMdd 不是每个日期都填满了,并且想显示其他消息,然后#error当我将int为datetimeIIF更改表中字段的值

=IIF(Fields!LMEXPI.Value = "" OR IsNothing(Fields!LMEXPI.Value), "NoDate", "")

在真实的部分,我想添加此代码

=new DateTime(Fields!LMEXPI.Value/10000, (Fields!LMEXPI.Value/100) mod 100, Fields!LMEXPI.Value mod 100)

在第一个例子它改变是空与日期“野点”,但是当我第二个代码块添加到IIF表达它完全地关闭,并在每行显示#ERROR

回答

2

你需要为int转换为字符串,以获得第一状态时不丢#errors,那么你应该能够使用DateSerial构建与逻辑日期:

=IIF(CStr(Fields!LMEXPI.Value) = "" OR IsNothing(Fields!LMEXPI.Value), "NoDate", DateSerial(Fields!LMEXPI.Value/10000, (Fields!LMEXPI.Value/100) Mod 100, Fields!LMEXPI.Value Mod 100)) 
+0

这就是它thnx – 2014-12-03 09:08:32

0

不能使用新的内联到instanstiate一个值

=IIF(Fields!LMEXPI.Value = "" OR IsNothing(Fields!LMEXPI.Value), "NoDate", DateValue(MEXPI.Value)) 

我可以“T检验此深表歉意

+0

我用它,它不工作列中的每个字段是#error,我想我必须继续寻找 – 2014-12-02 15:58:54

+1

@LodeVlaeminck:DateSerial的另一个答案是我去的 – gbn 2014-12-03 13:00:00