注册 登录
编程论坛 ASP技术论坛

这个错误是什么意思呀??高手帮忙.要数年据库的留言!!

peiyanjian 发布于 2008-04-01 21:22, 2694 次点击
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 '* form stu where id = (, )' 中。

/students.ASP,行 55



<%response.expires=0%>
<%
set conn=server.createobject("adodb.connection")
DSNtemp = "Driver={Microsoft Access Driver (*.mdb)};"
DSNtemp = DSNtemp & "DBQ=" & server.mappath("date/student.mdb")
conn.open DSNtemp
stext = "select id,xuehao,xingming,zhiwu, banji,chushengnianyue,minzu,zhengzhimianmao,dangtuanshijian,jiguan,ruwushijian,wenhuachengdu,lianxidianhua,ruwudiqu,jiatingzhuzhi,youzhengbianma from stu order by banji desc"
set rs = conn.execute(stext)
if rs.eof then
response.write "database error"
response.end
end if
%>
<html>
<head>
<%
'set conn=server.createobject("adodb.connection")
'conn.open("DRIVER=Driver do Microsoft ACCESS (*.mdb);dbq="&server.mappath("student.mdb"))
set rs=server.createobject("adodb.recordset")
sql="select * from stu"
rs.open sql,conn,3
rs.pagesize=20
if request("page")<>"" then
  epage=cint(request("page"))
   if epage<1 then epage=1
   if epage>rs.pagecount then epage=rs.pagecount
else
epage=1
end if
rs.absolutepage=epage
%>
<title>fds</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
a:link {  color: #000000; text-decoration: none}
a:visited {  color: #000000; text-decoration: none}
-->
</style>
<style type="text/css">body {margin:0;}</style>
<script language="javascript">
function CheckAll(){
  for (var i=0;i<form2.elements.length;i++){
    var e =form2.elements[i];
   if (e.name != 'chkall') e.checked =form2.chkall.checked;
   }
  }
</script>
</head>
<%
if request.form("action")="删除" then
Ann=request.form("Ann")
if Ann<>"" and not isnull(Ann) then
   conn.execute "delete * form stu where id = ("&Ann&")"
end if
end if
%>

<body bgcolor="#FFFFFF" text="#000000">
<h2 align="center">欢迎来到fdsaf管理系统</h2>
<h4 align="center">可以点击某一行姓名来察看详细信息</h4>
<p><font color="#0066CC">相关操作: <a href="/xy_add.asp">添加学员</a> | <a href="/students.asp">显示信息</a>
  | <a href="/index.ASP">退出登陆</a></font></p>
<p>
<form name="form1" method="post" action="/ss.asp">
<td> 姓名
  <input name="xingming" type="text" maxlength="10" size="15">
  班级
  <input name="banji" type="text" maxlength="10" size="15">
  <input name="submit" type="submit" value="显示学生">
</td>
</form>
</p>
<hr size=3 noshadow width=150% align=left></hr>
<div align="center">        <form name="form2" method="post" action="">

  <table width="1600" border="1" cellpadding="0" cellspacing="0" bgcolor="#C7E8F8">
    <tr>
     <td height="22"><div align="center">
     
    </div></td>
    
      <td>
        <div align="center"><font color="#FF0000">姓名</font></div>
      </td>
      <td>
        <div align="center">学号</div>
      </td>
      <td>
        <div align="center">职务</div>
      </td>
      <td>
        <div align="center">班级</div>
      </td>
      <td>
        <div align="center">出生年月</div>
      </td>
      <td>
        <div align="center">民族</div>
      </td>
      <td>
        <div align="center">政治面貌</div>
      </td>
      <td>
        <div align="center">党团时间</div>
      </td>
      <td>
        <div align="center">籍贯</div>
      </td>
      <td>
        <div align="center">入学时间</div>
      </td>
      <td>
        <div align="center">文化程度</div>
      </td>
      <td>
        <div align="center">联系电话</div>
      </td>
      <td>
        <div align="center">入学地区</div>
      </td>
      <td>
        <div align="center">家庭地址</div>
      </td>
      <td>
        <div align="center">邮政编码</div>
      </td>
    </tr>
    <%
    Do while not rs.eof
    %>
    
     <TR>
     <td height="22"><div align="center">
      <input type="checkbox" name="Ann" value="<%=cstr(id)%>" style="width:16px; height:16px;" />
    </div></td>
     <TD><div align="center"><a href='/stu_xx.asp?id=<%=rs("id") %>'><%=rs("xingming") %></a></div></TD>
     <%
     %>
     <td><div align="center">0<%=rs("xuehao") %></div></td><td><div align="center"><%=rs("zhiwu") %></div></td><td><div align="center"><%=rs("banji") %></div></td><td><div align="center"><%=rs("chushengnianyue") %></div></td><td><div align="center"><%=rs("minzu") %></div></td><td><div align="center"><%=rs("zhengzhimianmao") %></div></td><td><div align="center"><%=rs("dangtuanshijian") %></div></td><td><div align="center"><%=rs("jiguan") %></div></td><td><div align="center"><%=rs("ruwushijian") %></div></td><td><div align="center"><%=rs("wenhuachengdu") %></div></td><td><div align="center"><%=rs("lianxidianhua") %></div></td><td><div align="center"><%=rs("ruwudiqu") %></div></td><td><div align="center"><%=rs("jiatingzhuzhi") %></div></td><td><div align="center"><%=rs("youzhengbianma") %></div></td></tr>
    <%
  
     rs.movenext
    Loop
    
     %>
  </table>
<p align="center">
</p>
<p align="center">现在是第<%=epage%>页一共有<%=rs.pagecount%>页

<a href="/students.ASP">首页</a>&nbsp;
<a href="/students.ASP?page=<%=epage-1%>">前一页</a>&nbsp;
<a href="/students.ASP?page=<%=epage+1%>">后一页</a>&nbsp;
<a href="/students.ASP?page=<%=rs.pagecount%>">末页</a></p>

        
  <span class="STYLE13"> 全选/不选</span>
    <input type="checkbox" name="chkall" onclick="CheckAll();" style="width:16px; height:16px;" />
     
   
<td colspan="2" align="right"><input type="submit" name="action" value="删除" />
      <input name="deleteorupdate" type="hidden" id="deleteorupdate">
    <input name="deleteall" type="hidden" id="deleteall">
    <input name="caozuo" type="hidden" id="caozuo">
</form>
  
</div>

<%
rs.close
conn.close
%>
</body>
</html>
22 回复
#2
dhdhzzw2008-04-02 15:59
if Ann<>"" and not isnull(Ann) then
   conn.execute "delete * form stu where id = [bo]("&Ann&")"[/bo]
end if
那里不对,,改成  id='"&Ann&"'
#3
peiyanjian2008-04-02 19:08
还是不对呀,提示错误还是那样的!!
#4
peiyanjian2008-04-02 21:04
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 '* form stu where id = (, )' 中。

/students.ASP,行 55

刚发现,如果我选一个删除,没反映.选两个删除是上面的提示,如果选三个删除,'* form stu where id = (, ,)' 这个括号里多了一个逗号,我试过了.选多项删除时,括号里的逗号要多选项少一个.
#5
peiyanjian2008-04-03 14:22
顶起来!!
#6
madpbpl2008-04-03 15:47
sql="delete * form stu where id = ("&Ann&")"
Response.Write (sql)
看看结果是什么
#7
peiyanjian2008-04-03 17:40
这样试了一下,没反映了.就是页面闪了一下!
#8
peiyanjian2008-04-03 18:33
还是那个错误,还过这次显示在本页最上面了.前两次没看到
#9
skybirdzw2008-04-03 21:28
个人收集的代码,仅供参考:

ID= Request.Form("ID")

IDX = split(ID,",")

For i = 0 to Ubound(IDX)
    ImgUrl=Conn.exeCute("select top 1 imgurl from detialinfo where ID="&IDX(i)&"")(0)

    if ImgUrl<>"" then  Call FSODell(""&ImgUrl&"")    '这里自己写一个FSO删除过程 我不进行写代码
    Conn.exeCute("Delete from detialinfo where ID="&IDX(i)&"")
Next

RePage=Request.ServerVariables("HTTP_REFERER")
response.write "<script language='javascript'>alert('删除成功!');location.href='"&RePage&"'; </script>"

Conn.close : set Conn=nothing
response.end
#10
skybirdzw2008-04-03 21:40
这是一个批量删除记录的函数,可以参考:
sub DelFiles()
    dim whichfile,arrFileName,i
    whichfile=trim(Request("FileName"))
    if whichfile="" then exit sub
    if instr(whichfile,",")>0 then
        arrFileName=split(whichfile,",")
        for i=0 to ubound(arrFileName)
            if left(trim(arrFileName(i)),3)<>"../" and left(trim(arrFileName(i)),1)<>"/" then
                whichfile=server.MapPath(UploadDir & "/" & trim(arrFileName(i)))
                set thisfile=fso.GetFile(whichfile)
                thisfile.Delete True
            end if
        next
    else
        if left(whichfile,3)<>"../" and left(whichfile,1)<>"/" then
            Set thisfile = fso.GetFile(server.MapPath(UploadDir & "/" & whichfile))
            thisfile.Delete True
        end if
    end if
    Response.Write("<script>alert(""删除成功"");location.href=""adminpic.asp"";</script>")
end sub
#11
sjxwqc2008-04-03 21:54
本人技术不够,就帮你顶起来吧,让高手解决
#12
peiyanjian2008-04-04 15:06
还是不行呀,!!怎么解决呢,这么多人难道就没人能帮一下吗??
#13
yms1232008-04-04 15:37
明显是Ann变量没有得到数据楼主检查表单是否传递数据给了Ann变量。
#14
peiyanjian2008-04-04 19:11
我试过了,还是不行呀.高手帮忙呀!1
#15
peiyanjian2008-04-06 09:06
问题还是没解决呀!!
#16
hmhz2008-04-06 17:01
你这段批量删除程序是我写的,你都不理解我这个批量删除的原理就随便乱改动吗?

conn.execute "delete * form stu where id = ("&Ann&")"
改成
conn.execute "delete stu where id in ("&Ann&")"
#17
peiyanjian2008-04-07 13:15
版主呀!!我还以为碰到救星了呢..还是不行呀.这个我也试过了.你帮我看一下别有呀.我知道这代码里有别人错误,帮帮忙呀!!
#18
fuhuijun2008-04-07 13:48
我也是 觉得你的参数没有传递过来 ,你输出一下看能不能输出
#19
hmhz2008-04-07 23:19
是你自己不注意看明白程序是如何修改的,你自己看看
<input type="checkbox" name="Ann" value="<%=cstr(id)%>" style="width:16px; height:16px;" />
我提供代码出来的时候,在上面有个 set id=rs("id") 的,所以下面就直接使用
<%=cstr(id)%> 调用,如果你上面没有set id=rs("id")这一句,那你下面的<%=cstr(id)%>就要改成 <%=cstr(rs("id"))%>,也就是 <input type="checkbox" name="Ann" value="<%=cstr(rs("id"))%>" style="width:16px; height:16px;" /> , cstr() 函数的意思是将一个表达式转换成字符串类型,这里的ID是数字类型的,所以就转换成字符型的,为什么要转换呢,因为是批量删除,程序将循环下来的ID组合成数组
conn.execute "delete stu where id in ("&Ann&")"
这里的id in ("&Ann&") 直观的看,批量删除提交过来的数据是这样子的
conn.execute "delete stu where id in (1,2,3,4,5)"
而这些ID是从数据库调用出来的,数字不一定是我这样的顺序,也可以是 6,8,9,11,12 是根据你复选框打勾所选择的
id in (1,2,3,4,5) 形式就是 id=1 or id=2 or id=3 or id=4 or id=5
整个程序就是这样的
conn.execute "delete stu where id=1 or id=2 or id=3 or id=4 or id=5"
现在明白这个批量删除是如何批量删除的吗?

[[it] 本帖最后由 hmhz 于 2008-4-7 23:23 编辑 [/it]]
#20
peiyanjian2008-04-08 14:28
哦.版式主我明白了.可是,还是有问题呀!!

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'stu where id in (134,135 )' 中

基中134.135是数据库里的ID号.这是为什么呀??
是上面的删除语句有问题吗??
#21
hmhz2008-04-08 17:32
使用conn.execute "delete * form stu where id in ("&Ann&")" 看看
#22
peiyanjian2008-04-08 19:08
解决了.谢谢版式主.
#23
peiyanjian2008-04-10 14:19
帮忙再看一下这里有分页代码有什么问题呀??

怎么分页了.但是每页上显示的数据是全部数据呢????
1