以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=85232)

--  作者:9602084
--  发布时间:2016/5/20 21:20:00
--  [求助]
Dim dr As Row = Tables("基本信息").Current
msgbox(iif(dr.DataRow.RowState = DataRowstate.added,"",dr.DataRow.OriginalValue("档案编号").Substring(0,6)))
这段代码有什么问题吗?
当不是新增行时,显示正常,新增行时提示错误:
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160520212008.png
图片点击可在新窗口打开查看
新增行状态下,不带substring()正常
msgbox(iif(dr.DataRow.RowState = DataRowstate.added,"",dr.DataRow.OriginalValue("档案编号").Substring(0,6)))
[此贴子已经被作者于2016/5/20 21:30:47编辑过]

--  作者:xiaoohoo
--  发布时间:2016/5/20 21:39:00
--  
先检测dr.DataRow.OriginalValue("档案编号")是否nothing


--  作者:Hyphen
--  发布时间:2016/5/21 8:43:00
--  
Dim dr As Row = Tables("基本信息").Current
If dr IsNot Nothing AndAlso dr.DataRow.RowState = DataRowstate.added AndAlso dr.DataRow.OriginalValue("档案编号") IsNot Nothing Then
    msgbox(dr.DataRow.OriginalValue("档案编号").Substring(0,6))
End If

--  作者:大红袍
--  发布时间:2016/5/22 11:27:00
--  

IIF函数,会把全部的语句都执行一次的,自然会报错。

 

你要用IF Then 这样判断。