以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何求3个表中日期列的最大值?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98840)

--  作者:chh2321
--  发布时间:2017/4/7 21:16:00
--  如何求3个表中日期列的最大值?
老师,

我想从三个子表——表B、C、D中的日期列中找出最大值(最近日期)填入父表——表A的末次订购日期,代码如下:
        Dim dr As DataRow
        dr = DataTables("表A").Find("[编号] = \'" & e.DataRow("编号") & "\'" )
        Dim drs1 = DataTables("表B").Select("[编号] = \'" & e.DataRow("编号") & "\'","日期 DESC")
        Dim drs2 = DataTables("表C").Select("[编号] = \'" & e.DataRow("编号") & "\'","日期 DESC")
        Dim drs3 = DataTables("表D").Select("[编号] = \'" & e.DataRow("编号") & "\'","日期 DESC")
        If dr Is Nothing Then
            Return
        Else
          If drs1.count > 0 Andalso drs2.count > 0 Andalso drs3.count > 0 Then
                dr("末次订购日期") = 最大值(三者中)
            End If
End if

请问,三者中最大值如何写代码?
[此贴子已经被作者于2017/4/7 21:16:58编辑过]

--  作者:有点蓝
--  发布时间:2017/4/7 21:54:00
--  
表A,DataColChanged事件

Select Case e.DataCol.Name
    Case "编号"
        If e.NewValue > "" Then
            Dim d As Date = new Date()
            Dim ns() As String = {"表B","表C","表D"}
            For Each n As String In ns
                Dim d1 As Date = DataTables(n).Compute("Max(日期)","[编号] = \'" & e.NewValue & "\'")
                If d1 > d Then d = d1
            Next
            dr("末次订购日期") = d
        End If
End Select