浙江老板跑路了歌曲:asp+access数据修改问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 11:51:30
在一个数据库内有两个表
aa和bb
aa中包含两个字段 aa1 和 aa2 以及其它许多字段
bb中包含两个字段 bb1 和 bb2 以及其它许多字段
其中aa1和bb1的值是相同的
如何按照aa1和bb1的对应关系将aa2的值导入到bb2中去?
代码执行时产生错误, 打开数据看只换掉了几条记录
错误类型:
ADODB.Recordset (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/tk5/tk5/kaishi.asp, 第 9 行

<%
'连接数据库,conn

set rsa=server.createobject("adodb.recordset")
rsa.open "select * from aa",conn

do while not rsa.eof
set rsb=server.createobject("adodb.recordset")
rsb.open "select * from bb where bb1='"&rsa("aa1")&"'",conn,2,3
rsb("bb2")=rsa("aa2")
rsb.update
rsb.close
set rsb=nothing
rsa.movenext
loop

rsa.close
set rsa=nothing

'关闭数据库
%>

出现错误是因为你的aa表中的aa1字段记录比bb表中bb1字段的记录条数要多,当查询到一个aa1记录值时,代码会自动查询bb表bb1字段找出与aa1相同的记录,如果aa1记录在bb1中没有对应记录的话,程序会停止。所以你添加成功了几条记录,然后报错。需要修改一下代码:

<%
'连接数据库,conn

set rsa=server.createobject("adodb.recordset")
rsa.open "select * from aa",conn

do while not rsa.eof
set rsb=server.createobject("adodb.recordset")
rsb.open "select * from bb where bb1='"&rsa("aa1")&"'",conn,2,3

if not rsb.eof then

rsb("bb2")=rsa("aa2")
rsb.update
rsb.close
set rsb=nothing

else

rsb.close
set rsb=nothing

end if

rsa.movenext
loop

rsa.close
set rsa=nothing

'关闭数据库
%>