以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]判断为空,如何不增加行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=34652)

--  作者:faxfaxfax
--  发布时间:2013/6/11 12:28:00
--  [求助]判断为空,如何不增加行
表的datarowadding 中,增加行时要求table2“姓名”字段等于table1表的"姓名"字段。
如果table1中“姓名“字段为空,则要求先在table1中录入姓名。

提示了以后,行还是会增加上,如何不增加行的。

Dim Tbl As Table  = Tables(Table1")
If Tbl.Current IsNot Nothing Then
    If tbl.Current.IsNull("姓名") Then
        MessageBox.Show("请先录入姓名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    return
    End If
End If
e.DataRow("姓名") = tbl.Current("姓名")

--  作者:lsy
--  发布时间:2013/6/11 13:53:00
--  

DataRowAdded

 

If Tables("表A").Current.IsNull("姓名") Then
    e.DataRow.Reject()
    MessageBox.Show("请先在<表A>中录入姓名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    e.DataRow("姓名") = Tables("表A").Current("姓名")
End If


--  作者:faxfaxfax
--  发布时间:2013/6/12 10:12:00
--  
e.DataRow.Reject()

这个不行,调用目标发生错误。
--  作者:lsy
--  发布时间:2013/6/12 14:39:00
--  
以下是引用faxfaxfax在2013-6-12 10:12:00的发言:
e.DataRow.Reject()

这个不行,调用目标发生错误。

你把代码放在哪儿哟?要放在表B的DataRowAdded中。


--  作者:faxfaxfax
--  发布时间:2013/6/13 12:38:00
--  
增加第一行的时候出错。
--  作者:狐狸爸爸
--  发布时间:2013/6/13 12:42:00
--  

If Tables("表A").Current IsNot Nothing Then
    If Tables("表A").Current.IsNull("姓名") Then
        e.DataRow.Reject()
        MessageBox.Show("请先在<表A>中录入姓名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        e.DataRow("姓名") = Tables("表A").Current("姓名")
    End If
End If


--  作者:Bin
--  发布时间:2013/6/13 12:44:00
--  
请问,你是以什么为关联的呢? 
--  作者:faxfaxfax
--  发布时间:2013/6/14 12:33:00
--  
以姓名作为关联的,用的模拟关联。
试验了,增第一行,就是不行。
增加第二行就行,不过估计是撤消的第一次增加的空行。

--  作者:faxfaxfax
--  发布时间:2013/6/14 12:41:00
--  
解决了。