此主题相关图片如下:图片8.jpg

下面 datacolchanged 里面的代码,老是会出现上面图中的提示,请问是什么原因?谢谢
If e.DataCol.Name = "生产日期" Then
Dim d3 As String = Format(e.DataRow("生产日期"), "yyyyMMdd")
msgbox(d3)
e.DataRow.BaseRow("_SortKey") = d3.Substring(0, 8)
End If
If e.DataCol.Name = "冲头更换日期" Then
If e.NewValue IsNot Nothing Then
Else
MsgBox(1)
For Each dr3 As DataRow In DataTables("生产模数记录").Select("模具型号 = '" & e.DataRow("模具型号") & "' and 冲头更换日期 > '" & e.oldvalue & "'")
MsgBox(2)
dr3("上次更换冲头模数") = Nothing
Next
End If
End If
上面的代码,MsgBox(1) 会有提示,MsgBox(2) 就没有提示了,请问是什么问题?是不是因为 newvalue 是空值,就无法执行代码?谢谢。
没有符合条件的数据:
..........Select("模具型号 = '" & e.DataRow("模具型号") & "' and 冲头更换日期 > '" & e.oldvalue & "'")
Dim drs As List(Of DataRow) = DataTables("出入库2").SQLSelect("[物料编号] = '" & e.DataRow("物料编号") & "'", "[_SortKey]")
Dim drs As List(Of DataRow) = DataTables("出入库2").SQLSelect("[物料编号] = '" & e.DataRow("物料编号") & "'")
msgbox("cnt=" & drs.Count)
上面两个SQLSelect语句,我用第一句时,计算出的行数cnt是0,这是错误的;而用第二句时,计算出的行数cnt就是正确的。请问是什么原因呢?谢谢
因为不看帮助,不按语法使用:
http://www.foxtable.com/webhelp/topics/2900.htm,看示例四
select函数的第二个参数是Top【Top: 可选参数,指定返回的行数】,结果上面写的是【"[_SortKey]"】,数据库理解不了,就无法返回数据,改为
Dim drs As List(Of DataRow) = DataTables("出入库2").SQLSelect("[物料编号] = '" & e.DataRow("物料编号") & "'","", "[_SortKey]") |
果然是这样。谢谢。 Dim drs As List(Of DataRow) = DataTables("出入库").SQLSelect("[物料编号] = '" & e.DataRow("物料编号") & "'", "", "[_SortKey]")
For i As Integer = 0 To drs.Count - 1
If i = 0 Then
drs(i)("余数") = drs(i)("出入库数量")
Else
drs(i)("余数") = drs(i - 1)("余数") + drs(i)("出入库数量")
End If
If i > 0 Then
If drs(i)("出入年月") = drs(i - 1)("出入年月") Then
drs(i)("上行余数") = Nothing
Else
drs(i)("上行余数") = drs(i - 1)("余数")
End If
End If
Next
DataTables("出入库").SQLUpdate(drs)
上面那段代码,如果改成 DataTables("订单").SQLReplaceFor("折扣", 0.05, "产品 = 'PD01'") 的模式,是不是效率会更高?但是,我不知道怎么改。谢谢。