delphi 7 对access查询问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:07:08
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from icmovh where post=''IN'' AND POST=TRUE AND FORM_DIS='''+TRIM(E2.TEXT)+''' ORDER BY REF_NO');
ADOQuery1.Open;
删除任何一个where 后的条件都可查出结果,但只要三个查询条件以上就不会显示任何数据,单事实符合条件的记录是存在的,请问高手是什么原因???????????

将原:
where post=''IN'' AND POST=TRUE AND FORM_DIS='''+TRIM(E2.TEXT)+''' ORDER BY REF_NO
改成:
where post='+''''+'IN'+''''+' AND POST=TRUE AND '+' FORM_DIS='+''''+TRIM(E2.TEXT)+''''+'ORDER BY REF_NO'
试试。即:所有’均为单引号
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from icmovh where '+'post='+''''+'IN'+''''+' AND POST=TRUE AND '+ 'FORM_DIS='+''''+TRIM(E2.TEXT)+''''+' ORDER BY REF_NO');
ADOQuery1.Open

Delphi中字符串用单引号’,一个单引号用''''表示。
以下是本人的材料进出库管理中的sql的一个写法,请参照(单机版,数据库就用Access,ADO引擎):

strSql:='Select ck1.dh as 单号, sldw as 收料单位,ckrq as 出库日期,'
+'ckdw as 出库单位,spr as 审批人,ysr as 验收人,ckr as 出库人,'
+'xh as 序号,clmc as 名称,clgg as 规格,cldw