1、你用的是事件,结果代码中用的不是e.DataRow,而是Tables("生产任务单总表").Current,Current是选定行,不是触发事件的行,如果表中有10行,你这么处理,重置列就会针对选定行执行10次,而不是每行执行1次。
2、代码中,增加了一行,并保存在变量r中:
Dim r As Row=Tables("生产任务单总表.车间绩效记录").AddNew()
可是你后面的扶植用的不是r,是:
Tables("车间绩效记录").rows(i)("级别") =Tables("物料编码").rows(i)("级别")
新增的行是r,不是 Tables("车间绩效记录").rows(i),除非巧合和,否则不会出现正确的结果。
3、你明明用for each语句遍历物料编码的行,还用find找什么?
4、综上所述,代码为:
If e.DataCol.Name = "XXX" AndAlso e.NewValue = True Then
Dim dr5 As DataRow
For i As Long = 0 To Tables("物料编码").count -1
dr5 = Tables("物料编码").rows(i)
If dr5("物料型号")=e.DataRow("物料型号") Then
Dim r As Row=Tables("生产任务单总表.车间绩效记录").AddNew()
r("级别") =dr5("级别")
r("物料编码") =dr5("物料编码")
r("物料型号") =dr5("物料型号")
r("物料名称") =dr5("物料名称")
r("加工工艺") =dr5("加工工艺")
r("工艺内容") =dr5("工艺内容")
r("物料类别") =dr5("类别")
r("品质标准") =dr5("品质标准")
r("产能") =dr5("产能")
r("周期") =dr5("生产周期")
r("单价") =dr5("价格")
r("计量单位") =dr5("计量单位")
End If
Next
End If
[此贴子已经被作者于2011-5-13 10:46:18编辑过]