项目中有以下代码,代码在表事件中双击行号打开一个打印预览窗口时执行:
Dim dr上次车号 As DataRow
dr上次车号 = _dt销售出库.SQLFind("发货时间 < '" & tb.Current("发货时间") & "' And 通知单号 = '" & tb.Current("通知单号") & "' And 状态 = '有效' And 审核 = 1" ,"发货时间 Desc")
正常情况下,同一个单号发货时间不会相同,至少隔1分钟,可是,近期用户发生了发货时间相同的相同,举例如下:
通知单号 发货单号 发货车号 发货时间
TZ001 1 1 2020-6-12 11:55
TZ001 2 2 2020-6-12 12:00
TZ001 3 3 2020-6-12 12:00
此时,执行上面代码,当打印2号或3号单时,上次车号都显示1号车,正确的情况是打印2号单才显示上次车号为1号车,打印3号单显示上次车号为2号车才对,新制定的规则是当时间相同时按发货单号排先后
于是我把代码改了下,如下:
dr上次车号 = _dt销售出库.SQLFind("发货时间 <= '" & tb.Current("发货时间") & "' And 通知单号 = '" & tb.Current("通知单号") & "' And 发货单号 < '" & tb.Current("发货单号") & "'And 状态 = '有效' And 审核 = 1" ,"发货时间 Desc,发货单号 Desc")
可查出来结果不对,打印3号单时,上次车号还是显示1号车,也就是说 发货时间 <= '" & tb.Current("发货时间") 中的“=”没起作用,原因是什么呢?数据库用的是SQL