读书人

[] rs.fields EOF或BOF有一个是真或已

发布时间: 2013-02-25 10:23:36 作者: rapoo

[求助] rs.fields EOF或BOF有一个是真或已被删除

idvalue
2001
2541
2506

这是excel表,里面有ID,value是空的,需要从数据库里选取value值然后填到excel表里,但是走到一半老是提示“rs.fields EOF或BOF有一个是真或已被删除”


rs.open "select id,value from table1",conn, adOpenForwardOnly, adLockReadOnly

While Not rs.EOF Or Not rs.BOF
for i=2 to sheet1.UsedRange.Rows.Count
if sheet1.cells(i,1)=rs.Fields("id").Value then
sheet1.cells(i,2)=rs.Fields("value").Value
end if
next i
rs.movenext
wend

[解决办法]
你的判断有问题,无法判断出bof或者eof,只能判断出无记录的情况;当bof真,则eof假 not 一下,就为真,必然进入循环;参看红色的修改

rs.open "select id,value from table1",conn, adOpenForwardOnly, adLockReadOnly
While Not (rs.EOF Or rs.BOF)
for i=2 to sheet1.UsedRange.Rows.Count
if sheet1.cells(i,1)=rs.Fields("id").Value then
sheet1.cells(i,2)=rs.Fields("value").Value
end if
next i
rs.movenext
wend
[解决办法]

rs.open "select id,value from table1",conn, adOpenForwardOnly, adLockReadOnly

do While Not rs.EOF
for i=2 to sheet1.UsedRange.Rows.Count
if sheet1.cells(i,1)=rs.Fields("id").Value then
sheet1.cells(i,2)=rs.Fields("value").Value
end if
next i
rs.movenext
loop

读书人网 >VB

热点推荐