以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  DataRowAdded代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92545)

--  作者:zhang_yugang
--  发布时间:2016/11/6 20:17:00
--  DataRowAdded代码
Dim r As DataRow = e.DataRow
Dim b As DataRow = DataTables("客户资料").Find("[联系电话] = \'" & r("发件电话") & "\'")
Dim t As String = b("客户名称")
MessageBox.Show(t)

这段代码哪里不对?弹出“未将对象设置引用到对象的实例”。

--  作者:wyz20130512
--  发布时间:2016/11/6 20:53:00
--  
Dim r As DataRow = e.DataRow
Dim b As DataRow = DataTables("客户资料").Find("[联系电话] = \'" & r("发件电话") & "\'")
If b IsNot Nothing Then
    Dim t As String = b("客户名称")
    MessageBox.Show(t)
End If

是判断一下是否找到满足条件的行。

--  作者:zhang_yugang
--  发布时间:2016/11/7 10:09:00
--  
果然是Find代码有问题,用了你的代码,不弹出MessageBox了,谢谢,我再找找原因。
--  作者:zhang_yugang
--  发布时间:2016/11/7 10:32:00
--  
找到大概的原因了,因为这个表中的行是通过代码增加的,
Dim dr As DataRow
Dim dr1 As DataRow
dr = DataTables("运单信息").AddNew()

dr("发件客户") = e.form.Controls("jjkh").Text
dr("发件单位") = e.form.Controls("jjdw").Text
……
先增加行,再填充数据,所以表中的DataRowAdded代码获取到的是空值。

--  作者:有点蓝
--  发布时间:2016/11/7 10:42:00
--  
那就到DataColChanged事件取值