我通过选择时间段查询数据,例如2009-10-01到2009-10-14之间的数据,用下面的代码运行的时候,全是空白的,然后我点刷新,提示我错误“FROM字句语法错误”
代码如下:
procedure TForm1.RzBitBtn5Click(Sender: TObject);
begin
 with ADOQuery1 do
    begin
    Filtered:=  False;
    adoquery1.SQL.Add('select * from Attendance where [Date]>='''+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+''' and [Date]<='''+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+'''');
    Filtered :=True;
    end;
end;

解决方案 »

  1.   

    什么数据库,如果是acess要加‘#’修饰符
    '#'+日期+'#'
      

  2.   

    嗯,是的ACCESS数据库,#号在哪里修改啊??
      

  3.   

    with ADOQuery1 do 
        begin 
        close;
        sql.text := 'select * from attendance where [Date]>=:Date1 and [Date]<=:Date2';
        Parameters.parambyname('date1').value := strtodate(FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date));
        Parameters.parambyname('date2').value := strtodate(FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date));
        Open;
        end; 
      

  4.   

    adoquery1.SQL.Add('select * from Attendance where [Date]>='# +FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+ #' and [Date]<='# +FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+ # '');
    错误提示“[Error] Unit1.pas(127): Constant expression expected”
      

  5.   

    检查你拼出来的SQL
    好像是这样
    adoquery1.SQL.Add('select * from Attendance where [Date]>=''#' +FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+ '#'' and [Date] <=''#' +FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+ '# ''');用参数方式,省出不少麻烦事
      

  6.   

    adoquery1.SQL.Add('select * from Attendance where [Date]>=''#' +FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+ '#'' and [Date]<=''#' +FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+ '#' '');
    报错[Error] Unit1.pas(127): Missing operator or semicolon
      

  7.   

    看一下你定义的Date字段是什么类型的。
      

  8.   

    我的date字段类型是时间/日期
      

  9.   

    procedure TForm1.RzBitBtn7Click(Sender: TObject);
    begin
     with ADOQuery1 do
        begin
        Filtered:=  False;
        adoquery1.SQL.Add('select * from Attendance where [Date]>=''#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+ '#'' and [Date]<=''#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+ '#''');
        Filtered :=True;
        end;
    end;
    调试通过之后,运行,选择时间之后,出现的是空白的数据,然后我点击更新按钮就提示我“from子句错误”