Foxtable(狐表)用户栏目专家坐堂 → 跨表更新数据


  共有2514人关注过本帖平板打印复制链接

主题:跨表更新数据

美女呀,离线,留言给我吧!
朱女士
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:445 积分:3633 威望:0 精华:0 注册:2020/2/8 11:14:00
跨表更新数据  发帖心情 Post By:2020/7/30 10:56:00 [只看该作者]

老师您好!
     我现有两个表:ddpsb和ddqdb。我想按照zzh查找 ddpsb表中的净重为空的行,然后计算相同zzh的ddqdb的净重的单台平均数,然后按照zzh和zzh_xx依次回填到ddpsb中,我写的代码只回填了一个zzh号的以后的不回填了。请帮查看一下,谢谢!
 代码:Dim zh1 As String   'ddqdb的zzh
Dim zh2 As String   'ddpsb的zzh

Dim zl As Double
Dim je As Double
Dim bje As Double
Dim ts As Integer
Dim zyy As String
Dim zyy1 As String
Dim zyy2 As String
Dim lg As Integer
Dim dzl As Double
Dim dje As Double
Dim dbje As Double
'Dim wr As DataRow
Dim count As Integer

Dim wr As DataRow=DataTables("ddpsb").find("净重 is null" )


For Each dr As DataRow In DataTables("ddqdb").DataRows
    zh1=dr("zzh")
    zl = Tables("ddqdb").Compute("Sum(重量)","[zzh]='" & zh1 & "'" )
    je = Tables("ddqdb").Compute("Sum(含税金额)","[zzh]='" & zh1 & "'" )
    bje = Tables("ddqdb").Compute("Sum(不开piao金额)","[zzh]='" & zh1 & "'" )
    dr = DataTables("ddqdb").Find("[zzh]='" & zh1 & "'" )
    If dr IsNot Nothing Then
    ts=dr("台数")
    dzl=zl/ts
    dje=je/ts
    dbje=bje/ts
    
    If dr.isnull("zzh_yy") = False
        zyy=dr("zzh_yy")
        If zyy.length >= 2
            zyy1=zyy.SubString(0,2)
        End If
        If zyy.length >= 5
            zyy2=zyy.SubString(3,2)
        End If
    End If
    Dim k1 As Integer
    Dim k2 As Integer
    k1=cint(zyy1)
    k2=cint(zyy2)
    Dim i As Integer
    Dim zys(ts) As String
    For i=k1 To k2
        If ts<=9
            zys(i)="0"+cstr(i)
        Else
            zys(i)=cstr(i)
        End If
        
        wr=DataTables("ddpsb").find("[zzh]='" & zh1 & "'and [zzh_xx]='" & zys(i) & "'")
       If wr("净重") Is Nothing Then
        wr("净重")=dzl
        wr("含税金额")=dje
        wr("不开piao金额")=dbje
      End If
    Next
  End If  
Next
messagebox.show("回填完毕")

 回到顶部