我是想做一个日期查询的语句,程序在检查错误时可以通过,但是运行就会提示为无效的SQL语句
begin
  if combobox52.text='等于' then
  begin
  with adoquery51 do
  begin
  adoquery51.SQL.Clear;
  adoquery51.SQL.Add('slelect * from lr where lrrq = :rq');
  adoquery51.Parameters.ParamByName('rq').Value:= datetostr(datetimepicker1.datetime);
  Open;
  end;  end;  end;

解决方案 »

  1.   

    adoquery51.Parameters.ParamByName('rq').Value:= datetimepicker1.datetime;
      

  2.   

    adoquery51.SQL.Add('slelect * from lr where lrrq = :rq');
    >>
    adoquery51.SQL.Add('select * from lr where lrrq = :rq');
      

  3.   

    报错信息是:‘无效的SQL语句,期待‘DELETE’,‘INSERT’,‘PROCEDURE’,‘SELECT’、或‘UPDATE’。
      

  4.   

    adoquery51.SQL.Add('slelect * from lr where lrrq = :rq') 这一行中
    将 'slelect'  改为‘select’,兄弟你打了一个字母。
      

  5.   

    我改过来了啊,在ADOQUERY里我也看了,运行后还是一样
      

  6.   

    报错信息是:‘无效的SQL语句,期待‘DELETE’,‘INSERT’,‘PROCEDURE’,‘SELECT’、或‘UPDATE’。报如上信息是因为你Select写错了,
    你更正过来后,如果SQL语句还是错的,请说明错误信息,PS:对于SQL语句,不妨设断点,然后取出SQL语句的值,到SQL Server中查询分析器中执行ACCESS可以在新建查询中执行,发现错误立即修改,如果只想更正可以采用如下SQL语句执行:'select * from lr where lrrq = # ' +  FormatDateTime('YYYY-MM-DD',datetimepicker1.Date) +'#'
      

  7.   

    你的这段程序中在select之前adoquery51 可能是处于插入或编辑状态。因此你必须adoquery51.clear
    之前close。
      

  8.   

    我怎么感觉应该检查以下RQ这个参数的类型呀。说不定你把RQ的类型没有设好。RQ是不是STRING呀?
      

  9.   

    检查Lrrq字段的类型,如果是DateTime或者Float,int,那么传递给它的ADO参数,即:
    adoquery51.Parameters.ParamByName('rq').Value 不能被赋为空值。