呵呵,代码应该没有错,不能运行的原因在于这个:
http://www.foxtable.com/help/topics/2242.htm
你的代码结构是:
Select Case e.DataCol.Name
Case = "设备编号"
Case "去向"
Case "借用日期","归还日期"
Case "设备编号","借用日期","归还日期"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.IsNull("设备编号") OrElse dr.IsNull("借用日期") OrElse dr.IsNull("归还日期") Then
dr("产权单位") = Nothing
Else
Dim filter As String
filter = "设备编号 = '" & dr("设备编号") & "' And 启用日期 <= '" & dr("借用日期") & "' And 停用日期 >= '" & dr("归还日期") & "'"
pr = DataTables("设备折旧").Find(filter)
If pr IsNot Nothing Then
dr("产权单位") = pr("产权单位")
End If
End If
End Select
所以你修改设备编号、借用日期、归还日期中的任何一列,最后面的一段代码都不会执行的,被前面的Case语句拦截了。