回 帖 发 新 帖 刷新版面

主题:求助,往Access里添加记录的问题

我不知道哪里出错,请大家指点一下。代码如下:
<%@ language=VBScript %>
<% 
set conn=server.CreateObject("adodb.connection")
connstr="dbq="&server.MapPath("jieguo.mdb")&";driver={microsoft access driver (*.mdb)};"
conn.open connstr

set rec=server.CreateObject("adodb.recordset")  
sqlstr="select * from answer"

rec.open sqlstr,conn,2,3     
rec.addnew

rec("answer1")=request.form("answer1")
rec("answer2")=request.form("answer2")
rec("answer3")=request.form("answer3")
rec("answer4")=request.form("answer4")
rec("answer5")=request.form("answer5")

rec.update

rec.close
conn.close
set rec=nothing
set conn=nothing 
%>

回复列表 (共11个回复)

沙发

执行结果总是说:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
/myweb/diaocha/timu/submit.asp, 第 21 行

我的平台是XP专业版2002,IIS为5.1版本。

板凳

检查一下数据库的属性是不是只读

3 楼


检查过了,不是“只读”状态。

4 楼

connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("jieguo.mdb")
改成这样试试

5 楼

不行啊,本来出错是在rec.update.
照你这样改过来,出错就出在rec.addnew这项上了。
还是说数据库是只读,不能用啊。

6 楼

sqlstr="select * from answer"
rec.open sqlstr,conn,2,3     
rec.addnew
rec("answer1")=request.form("answer1")
rec("answer2")=request.form("answer2")
rec("answer3")=request.form("answer3")
rec("answer4")=request.form("answer4")
rec("answer5")=request.form("answer5")
rec.update
以上换成
sqlstr="insert into answer(answer1,answer2,answer3,answer4,answer5) values('"&request.form("answer1")&"','"&request.form("answer2")&"','"&request.form("answer3")&"','"&request.form("answer4")&"','"&request.form("answer5")&"')"
rec.pen sqlstr,conn,1,3
试试

7 楼

郁闷,出错。提示:操作必须使用一个可更新的查询。
出错在:rec.open sqlstr,conn,1,3

8 楼

<%@ language=VBScript %>
去掉这句试试

9 楼

还是不行,还是说不能更新,数据库为只读。。

10 楼

rec.open sqlstr,conn,2,3 改为rec.open sqlstr,conn,1,3 试试

我来回复

您尚未登录,请登录后再回复。点此登录或注册