以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]合并数据同时保存数据,在哪里书写代码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97589)

--  作者:chh2321
--  发布时间:2017/3/15 11:18:00
--  [求助]合并数据同时保存数据,在哪里书写代码?
 

老师请教问题:

合并数据同时保存数据(随时读入随时保存),在哪里书写代码?怎么写?

--  作者:有点色
--  发布时间:2017/3/15 12:39:00
--  

 合并数据你是写代码操作的吗?

 

 最简单,你可以在DataColChanged事件写代码

 

If e.DataCol.Name = "第十列" Then

   e.DataRow.Save

End If

 

 http://www.foxtable.com/webhelp/scr/0685.htm

 


--  作者:chh2321
--  发布时间:2017/3/15 15:14:00
--  
老师,是这样:

Case "TreatOutcome2"
        Dim dr As DataRow
        dr = DataTables("表A").Find("[编号] = \'" & e.DataRow("编号") & "\'" )
        Dim drs = DataTables("表B").Select("[编号] = \'" & e.DataRow("编号") & "\' And [TreatOutcome2] Like \'%确诊%\'","诊疗日期")
        If drs.count > 0 Then
            dr("第一肿瘤确诊日期") = drs(0)("诊疗日期")
        Else
            dr("第一肿瘤确诊日期") = Nothing
        End If
        If drs.count > 1 Then
            dr("第二肿瘤确诊日期") = drs(1)("诊疗日期")
        Else
            dr("第二肿瘤确诊日期") = Nothing
        End If
        If drs.count > 2 Then
            dr("第三肿瘤确诊日期") = drs(2)("诊疗日期")
        Else
            dr("第三肿瘤确诊日期") = Nothing
        End If

这段代码写入表B的Datacolchanged事件中,我想在合并数据时直接触发事件。
但是合并数据过程中在某些行就会出现如下提示:
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。
关闭弹窗后,数据还可以继续合并,几十行后可能再次出现。

如果把这段代码注释掉后,就不会出现错误提示,可以正常合并数据。我以为是合并的数据暂时没有保存到后台数据库的原因,但是用e.DataRow.Save方法还是不行。

请问如果解决这一问题?
[此贴子已经被作者于2017/3/15 15:15:35编辑过]

--  作者:有点色
--  发布时间:2017/3/15 16:12:00
--  

加上判断

 

dr = DataTables("表A").Find("[编号] = \'" & e.DataRow("编号") & "\'" )

If dr is nothing Then

    msgbox("没找到对应的行")

Else

    \'你原来的代码

End If


--  作者:chh2321
--  发布时间:2017/3/15 17:04:00
--  
 
谢谢老师,问题解决了。