原来用的sqlserver数据库,后来要改成access的,发现有个语句不能运行了,请教这个sql在access里怎么写RsC.Open "select sj as 操作日期  ,djbh as 操作流水号 ,
(case when djlx in ('ZLRK','PFRK') then '入库' when djlx='CK' THEN '出库' when djlx='BS' THEN '报损'
when djlx='BC' THEN '补货' end ) as 操作类型 ,sl as 数量,CZY as 操作人,rtrim(bz) from kcjl
where djlx in ('ZLRK','PFRK','CK','BS','BC') and ((djbh='" & Trim(StrDjbh) & "'and djlx in ('ZLRK','PFRK'))or (hwmc='" & Trim(StrDjbh) & "'and djlx NOT in ('ZLRK','PFRK')))
order by sj", Conn

解决方案 »

  1.   

    将表名和字段全部用[]引上   时间类型 两边加#  其他都一样 
    把case when then end   他是sql专有的
    改成 iff (,true,false)
      

  2.   

    case when 在access中是不存在的
      

  3.   

    RsC.Open "select sj as 操作日期  ,djbh as 操作流水号 ,
    iif(djlx in ('ZLRK','PFRK'),'入库',iif(djlx='CK','出库',iif(djlx='BS','报损','补货'))) as 操作类型 ,sl as 数量,CZY as 操作人,rtrim(bz) from kcjl
    where djlx in ('ZLRK','PFRK','CK','BS','BC') and (djbh='" & Trim(StrDjbh) & "'and djlx in ('ZLRK','PFRK')) or (hwmc='" & Trim(StrDjbh) & "'and djlx NOT in ('ZLRK','PFRK'))
    order by sj", Conn
      

  4.   

    将表名和字段全部用[]引上   时间类型 两边加#  其他都一样 
    把case when then end   他是sql专有的
    改成 iff (,true,false)
    晕了写错了 
    把case when then end   他是sqlserver专有的 access不支持IIf(,true,false)