下面的代码会出现:“BOF或EOF中有一个是“真”, 或者当前的记录已被删除,所需的操作要求一个当前记录!”吗?????????????????? '*** 取安装单位的名称表 ***
sqlstr = "select * from valueazdwT"
Set rs1 = New ADODB.recordset
rs1.Open sqlstr, conn, adOpenStatic
For i = 0 To rs1.RecordCount - 1
valueForm.azdwCombo1.AddItem rs1.Fields("azdwmc").value
If Not rs1.EOF Then
rs1.MoveNext
End If
Next i
rs1.Close
VB会将上面的问题在编译中放过去,而编译好的程序一开始执行,则出现上面的提示,然后Over。哪能这样不负责?????
如果代码没错,有什么办法,能找到出错的地方??????
sqlstr = "select * from valueazdwT"
Set rs1 = New ADODB.recordset
rs1.Open sqlstr, conn, adOpenStatic
For i = 0 To rs1.RecordCount - 1
valueForm.azdwCombo1.AddItem rs1.Fields("azdwmc").value
If Not rs1.EOF Then
rs1.MoveNext
End If
Next i
rs1.Close
VB会将上面的问题在编译中放过去,而编译好的程序一开始执行,则出现上面的提示,然后Over。哪能这样不负责?????
如果代码没错,有什么办法,能找到出错的地方??????
valueForm.azdwCombo1.AddItem rs1.Fields("azdwmc").value
If Not rs1.EOF Then
rs1.MoveNext
End If
Next i这样修改:Do While Not rs1.Eof
valueForm.azdwCombo1.AddItem rs1.Fields("azdwmc")
rs1.MoveNext
Loop
sqlstr = "select * from valueazdwT"
Set rs1 = New ADODB.recordset
rs1.CursorLocation=adUseClient
rs1.Open sqlstr, conn, adOpenStatic,adLockBatchOptimistic
if rs1.bof and rs1.eof then
msgbox "数据库中没有查询到记录!!!"
exit sub
else
rs1.movelast
rs1.movefirst
For i = 0 To rs1.RecordCount - 1
valueForm.azdwCombo1.AddItem rs1!azdwmc
rs1.MoveNext
Next i
end if
rs1.Close
Set rs1 = New ADODB.recordset
rs1.Open sqlstr, conn, adOpenStatic
if rs1.recordcount>0 then
For i = 0 To rs1.RecordCount - 1
valueForm.azdwCombo1.AddItem rs1.Fields("azdwmc").value
If Not rs1.EOF Then
rs1.MoveNext
End If
Next i
end if
rs1.Close