以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于将表2中的日期按条件自动填入到表1的特定列  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=97114)

--  作者:chh2321
--  发布时间:2017/3/6 14:55:00
--  [求助]关于将表2中的日期按条件自动填入到表1的特定列
 老师,请教问题:

有两个表:表1有编号,第一入库日期,第二入库日期,第三入库日期;表2有编号,日期和是否入库
我想:如果表2中"是否入库"列出现“入库”,就将对应的日期按前后顺序填入到表1中第一入库日期,第二入库日期,第三……

我写的代码如下:
Sel ect Case e.DataCol.Name
    Case "编号","是否入库"
        Dim dr As DataRow
        Dim pr1,pr2,pr3 As DataRow
        dr = DataTables("表1").Find("[编号] = \'" & e.DataRow("编号") & "\'" )
        pr1 = DataTables("表2").Find("[编号] = \'" & e.DataRow("编号") & "\'" And "[是否入库] Like \'入库\'","日期")
        pr2 = DataTables("表2").Find("[编号] = \'" & e.DataRow("编号") & "\'" And "[是否入库] Like \'入库\'","日期",1)
        pr3 = DataTables("表2").Find("[编号] = \'" & e.DataRow("编号") & "\'" And "[是否入库] Like \'入库\'","日期",2)
        If dr Is Nothing Then
            dr = DataTables("表1").AddNew()
        End If
            dr("编号") = e.DataRow("编号")
        If dr IsNot Nothing Then
            If pr1 IsNot Nothing Then
                dr("第一入库日期") = pr1("日期")
                dr("第二入库日期") = pr2("日期")
                dr("第三入库日期") = pr3("日期")
            Else
                dr("第一入库日期") = Nothing
                dr("第二入库日期") = Nothing
                dr("第三入库日期") = Nothing
            End If
        End If
End Sel ect

结果出错,请老师指点!
[此贴子已经被作者于2017/3/6 14:54:52编辑过]

--  作者:chh2321
--  发布时间:2017/3/6 15:03:00
--  
上传附件
--  作者:chh2321
--  发布时间:2017/3/6 15:05:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:有点色
--  发布时间:2017/3/6 15:40:00
--  
Select Case e.DataCol.Name
    Case "编号","是否入库"
        Dim dr As DataRow
        dr = DataTables("表1").Find("[编号] = \'" & e.DataRow("编号") & "\'" )
        Dim drs = DataTables("表2").Select("[编号] = \'" & e.DataRow("编号") & "\' And [是否入库] Like \'%入库%\'","日期")
       
        If dr Is Nothing Then
            dr = DataTables("表1").AddNew()
        End If
        dr("编号") = e.DataRow("编号")
       
        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
End Select

--  作者:客人
--  发布时间:2017/3/6 16:07:00
--  
 谢谢老师,解决了!