语法错误 (操作符丢失) 在查询表达式

错误类型:MicrosoftJETDatabaseEngine(0x80040E14)语法错误(操作符丢失)在查询表达式'ispass=1andisdel=0andisl... 错误类型:
Microsoft JET Database Engine (0x80040E14)
语法错误 (操作符丢失) 在查询表达式 'ispass=1 and isdel=0 and islock=0 and isopen=1 and dept_id=() and dept_num=()' 中。

错误代码处
dim deptids,deptnums
deptids =session("dept_id")
deptnums=session("dept_num")

set rs=server.Createobject ("adodb.recordset")
if channelID<>"" then
sql="select * from news where ("&sql&") and dept_id=("&deptids&") and dept_num=("&deptnums&") and ispass=1 and isdel=0 and islock=0 and isopen=1 order by istop desc, newsid desc"
else
sql="select * from news where ispass=1 and isdel=0 and islock=0 and isopen=1 and dept_id=("&deptids&") and dept_num=("&deptnums&") order by istop desc, newsid desc"
end if
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write ""
改成:
sql="select * from news where ispass=1 and isopen=1 and and isdel=0 and islock=0 dept_id in ("&deptids&") and dept_num in ("&deptnums&") order by istop desc, newsid desc"

语法错误 (操作符丢失) 在查询表达式 'ispass=1 and isopen=1 and and isdel=0 and islock=0 dept_id in (2) and dept_num in (1)' 中。
难道语句太长就不行么……
展开
 我来答
z_blue_b
2009-11-06 · TA获得超过199个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:297万
展开全部
1 字符串的查询语句不是打括号,而是打单引号。
应该改成:"dept_id='"& deptids & "'"

如果参数deptids有多个,需要用逗号连接的形式(如:'A','B','C' 注意要单引号,如果不是字符串格式,就直接是A,B,C就可以了),SQL语句需改成"dept_id in ("& deptids & ")"

2 sql="select * from news where ("&sql&") and dept_id=("&deptids&") and dept_num=("&deptnums&") and ispass=1 and isdel=0 and islock=0 and isopen=1 order by istop desc, newsid desc"
这一句中的 ("& sql &")是不是搞错了,和现在这个字符串名字(sql)是一样的。

-----------------------------------------

看样子dept_id 和 dept_num是数字型。
把dept_id=(xxx) 和 dept_num=(xxx)改成
dept_id in (),dept_num in ()

并且需要判断deptids 和 deptnums是否为空,如果为空,就不要加到判断条件里。

另外deptids 和 deptnums 是不是指有多个?如果是多个,需要用逗号分开。
霍罗巴忆秋
2019-11-24 · TA获得超过3811个赞
知道大有可为答主
回答量:3117
采纳率:32%
帮助的人:210万
展开全部
汗。。空格。。
between
'00:00:00'and'
08:00:00
'and
and
和其他数据项要有空格。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
建彤慈晓霜
2019-05-17 · TA获得超过1040个赞
知道小有建树答主
回答量:1843
采纳率:90%
帮助的人:8.6万
展开全部
sql="select
*
from
dept
where
d_number="&d_number改成sql="select
*
from
dept
where
d_number='&+d_number+&'"我记得大概是这样,
SQL语句
里用变量的格式。你再仔细
查查
就知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
碧果光翠巧
2020-04-21 · TA获得超过3576个赞
知道大有可为答主
回答量:3047
采纳率:25%
帮助的人:207万
展开全部
你这个可以用Access自动生成SQL语句啊,新建查询向导,然后选择要查询的表和列就可以了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式