老师您好! 我现有两个表: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("回填完毕")