本身是这么写的,前面楼上我没把后面的代码复制上来,不好意思,这段代码是对比更新用的,当物料配色有值的时候新增行和替换值都正常,当物料配色是空值的时候,能够新增行,但被对比的表本身存在相同的行记录,还是会再增加一行,所以当物料配色值为空的时候,find这个条件代码是无法匹配条件的。
For Each drr As DataRow In dt1.DataRows
Dim fdr As DataRow = dt2.Find("物料基本信息_物料ID = '" & drr("物料基本信息_物料ID") & "' And [物料配色] = '" & drr("物料配色") & "' And [审核] = True ")
If fdr IsNot Nothing Then
If drr("采购应订数") <> fdr("采购应订数") Then
fdr("采购应订数") = drr("采购应订数")
fdr("静需求数") = drr("静需求数")
fdr("用量应订数") = drr("用量应订数")
fdr("订料数") = drr("订料数")
End If
Tables("采购需求_table1").Filter = "[物供号] = "& v &" And [审核] = True "
Else
Dim dr1 As Row = Tables("采购需求_table1").AddNew
dr1("物料基本信息_物料ID")=drr("物料基本信息_物料ID")
dr1("物料基本信息_物料名称")=drr("物料基本信息_物料名称")
dr1("物料基本信息_物料编码")=drr("物料基本信息_物料编码")
dr1("物料基本信息_布封")=drr("物料基本信息_布封")
dr1("静需求数")=drr("静需求数")
dr1("采购应订数")=drr("采购应订数")
dr1("采购应订数")=drr("采购应订数")
dr1("订料数")=drr("订料数")
dr1.Save()