以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]从主表读取和向主表写入的两段代码怎样共存  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114352)

--  作者:天一生水
--  发布时间:2018/2/4 9:30:00
--  [求助]从主表读取和向主表写入的两段代码怎样共存

第一段代码,当[案号]列添加进新案号时,从数据表读取其他列数据:

 

Select Case e.DataCol.Name   \'取数据表数据
    Case "审判程序","承办人","案号","当事人","案由","审判长","其他合议庭成员","陪审员","书记员", "开庭时间","开庭地点","原承办人","立案日期","结案日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("案号")
            dr("当事人") = Nothing
            dr("承办人") = Nothing
            dr("审判程序") = Nothing
            dr("立案日期") = Nothing
            dr("结案日期") = Nothing
            dr("团队") = Nothing
            dr("案由") = Nothing
            dr("审判长") = Nothing
            dr("其他合议庭成员") = Nothing
            dr("陪审员") = Nothing
            dr("书记员") = Nothing
            dr("开庭时间") = Nothing
            dr("开庭地点") = Nothing
        Else
            Dim dr1 = DataTables("数据表").Find("[案号] = \'" & e.DataRow("案号") & "\'")
            If dr1 Is Nothing Then
                msgbox("请输入正确案号!")               
            Else
                e.DataRow("当事人") = dr1("当事人")
                e.DataRow("承办人") = dr1("承办人")
                e.DataRow("审判程序") = dr1("审判程序")
                e.DataRow("立案日期") = dr1("立案日期")
                e.DataRow("结案日期") = dr1("结案日期")
                e.DataRow("团队") = dr1("团队")
                e.DataRow("案由") = dr1("案由")
                e.DataRow("审判长") = dr1("审判长")
                e.DataRow("其他合议庭成员") = dr1("其他合议庭成员")
                e.DataRow("陪审员") = dr1("陪审员")
                e.DataRow("书记员") = dr1("书记员")
                e.DataRow("开庭时间") = dr1("开庭排期_开庭时间")
                e.DataRow("开庭地点") = dr1("开庭排期_开庭地点")
            End If
        End If
End Select

 

第二段代码,向数据表写数据;但写入的列和上面读取的列名有相同的。两段代码能否共存?

Select Case e.DataCol.name     \'往数据表写数据
    Case "案号"
        Dim dr As DataRow
        If e.OldValue = Nothing Then
            dr = DataTables("数据表").Find("[案号] = \'" & e.NewValue & "\'")
        Else
            dr = DataTables("数据表").Find("[案号] = \'" & e.oldvalue & "\'")
        End If
    Case "审判长","其他合议庭成员","陪审员","书记员","开庭时间","开庭地点","原承办人"
        Dim dr = DataTables("数据表").Find("[案号] = \'" & e.DataRow("案号") & "\'")
        If dr IsNot Nothing Then
            dr("案号") = e.DataRow("案号")
            dr("审判长") = e.DataRow("审判长")
            dr("其他合议庭成员") = e.DataRow("其他合议庭成员")
            dr("陪审员") = e.DataRow("陪审员")
            dr("书记员") = e.DataRow("书记员")
            dr("开庭排期_开庭时间") = e.DataRow("开庭时间")
            dr("开庭排期_开庭地点") = e.DataRow("开庭地点")
            dr("原承办人") = e.DataRow("原承办人")
        End If
End Select


--  作者:有点甜
--  发布时间:2018/2/4 18:45:00
--  
两段代码,直接拷贝粘贴进去,就行了,你现在遇到什么问题什么冲突?
--  作者:天一生水
--  发布时间:2018/2/4 19:29:00
--  

 

当初从数据表引入数据时,"审判长","其他合议庭成员","陪审员"这些列为空值。

 

现在,在次表的上述列录入不了数据,录入以后,离开此单元格,就又变成空值了。

 

把写入代码  换到  引入代码之前可以了。


--  作者:有点甜
--  发布时间:2018/2/4 19:49:00
--  

Case "审判程序","承办人","案号","当事人","案由","审判长","其他合议庭成员","陪审员","书记员", "开庭时间","开庭地点","原承办人","立案日期","结案日期"

 

改成

 

Case "案号"