由于某种原因,当我过滤记录集然后启动 Do While Not 循环时,循环首先通过偶数记录,然后是奇数......
例如,下面的代码:
sql="SELECT * FROM ProcSaleQueue WHERE Num = '" & salegrouprs("Num") & "' AND Abbr = '" & salegrouprs("Abbr") & "' AND Item_Id = '" & salegrouprs("Item_Id") & "' AND Complete IS NULL ORDER BY ProcSaleId"
salesrs.Open sql, conn,3,3
salesrs.Filter="Complete = NULL"
salesrs.MoveFirst
Do While Not salesrs.EOF
msgbox salesrs("ProcSaleId")
'I do some processing things in here.
salesrs("Complete") = 1
salesrs.MoveNext
Loop
将输出
72 74 73 75
代替
72 73 74 75
但是当我删除时:
salesrs.Filter="Complete = NULL"
输出是有序的。我正在使用 .Filter 而不是再次查询,因为我必须多次循环这个记录集,而且它是一个巨大的集合,所以我不希望 SQL 服务器有太多的命中。有任何想法吗?