rstZhuCe.Open "select * from " & testid, ZhuCe, adOpenKeyset, adLockOptimistic
'对ID字段排序0-6000
Dialog.Show
Dialog.ProgressBar1.Max = 6000
For inum = 0 To 6000 Step 1
Dialog.ProgressBar1.value = inum
rstZhuCe.AddNew
rstZhuCe.Fields("ID").value = inum
rstZhuCe.Update
DoEvents
Next inum
Dialog.Hide
rstZhuCe.Close发现会出错。数据不是一直从0-6000,偶尔会比如从4800 就直接到5100了,然后在接着来,会出现几个这样的情况
用的 为什么会出现这样情况呢?
'对ID字段排序0-6000
Dialog.Show
Dialog.ProgressBar1.Max = 6000
For inum = 0 To 6000 Step 1
Dialog.ProgressBar1.value = inum
rstZhuCe.AddNew
rstZhuCe.Fields("ID").value = inum
rstZhuCe.Update
DoEvents
Next inum
Dialog.Hide
rstZhuCe.Close发现会出错。数据不是一直从0-6000,偶尔会比如从4800 就直接到5100了,然后在接着来,会出现几个这样的情况
用的 为什么会出现这样情况呢?
debug.assert rstZhuCe.Fields("ID").value =inum跟进去看看
rstZhuCe.Open "select * from " & testid, ZhuCe, adOpenKeyset, adLockOptimistic
rstZhuCe.MoveFirst
For inum = 0 To 6000 Step 1
If inum = rstZhuCe.Fields("ID").value Then
rstZhuCe.MoveNext
Else
a = MsgBox("新建试验编号效验有误,", vbOKOnly, "错误")
check6000 = False
rstZhuCe.Close
Exit Function
End If
Next
我发现在赋值ID和效验直接放入延时程序sleep 300后 赋值就不会出错了,这就是说 写入数据库后,需要一定时间。然后在打开效验才会数据正确