日期:2014-05-17  浏览次数:20890 次

"对象关闭时,不允许操作"问题
代码如下:

if request("usertype")=" " then 
  usertype=" "
else
  usertype=request.Form("usertype")
end if
dim conn,rs,sql
dim index
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("db/xxdb.mdb")
conn.Open "provider=microsoft.jet.oledb.4.0;data source=" & DBPath

Set rs = Server.CreateObject("ADODB.Recordset")
if usertype="sales" then
  index=0
Set rs=conn.execute("Select * from login where salesname is not null")

elseif … …
elseif … …
elseif … …
end if

… …

<%
if request("usertype")<>" " then 
do until rs.EOF %>

最后一行处报错。
求教各位大神!!!

------解决方案--------------------
查一下 If 语句走的是哪一个分支,可能是那个分支的 rs没有打开.
------解决方案--------------------
conn.execute(sql)常常用在更新或者删除里,而你的是用在筛选里,这很少见(因为没什么作用)
如果我没理解错的话,你是想按条件来打开数据库,所以你应该把
Set rs=conn.execute("Select * from login where salesname is not null")
改成:
Rs.open "Select * from login where salesname is not null",Conn,1,1

这样下面的elseif条件里都可以分别按条件打开不同的数据库:
elseif
Rs.open "Select * from xxxxx",Conn,1,1
elseif
Rs.open "Select * from xxxxx",Conn,1,1
............
那么下面判断rs.EOF时就不会出错了。