select BenHang.GF_Notedata,BenHang.GF_NoteNumber from BenHang,FaYuan where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata  between #'+formatdatetime('yyyy/mm/dd',DateTimePicker1.Date)+'# and #'+formatdatetime('yyyy/mm/dd',DateTimePicker2.Date)+'#'有什么错吗?

解决方案 »

  1.   

    with adoquery1 do
    begin
    close;
    slq.clear;sql.add(' select BenHang.GF_Notedata,BenHang.GF_NoteNumber from BenHang,FaYuan where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata  between  ');
    sql.add(:date1 and :date2 ) ; 
    Parameters.ParamByName('date1').value :=datetostr(datetimepicker1.date);
    Parameters.ParamByName('date1').value :=datetostr(datetimepicker2.date);open;end;
      

  2.   

    with adoquery1 do
    begin
    close;
    slq.clear;sql.add(' select BenHang.GF_Notedata,BenHang.GF_NoteNumber from BenHang,FaYuan where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata  between  ');
    sql.add(:date1 and :date2 ) ; 
    Parameters.ParamByName('date1').value :=datetostr(datetimepicker1.date);
    Parameters.ParamByName('date2').value :=datetostr(datetimepicker2.date);open;end;
      

  3.   

    with adoquery1 do
    begin
    close;
    sql.clear;sql.add(' select BenHang.GF_Notedata,BenHang.GF_NoteNumber from BenHang,FaYuan where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata  between  ');
    sql.add(:date1 and :date2 ) ; 
    Parameters.ParamByName('date1').value :=datetostr(datetimepicker1.date);
    Parameters.ParamByName('date2').value :=datetostr(datetimepicker2.date);open;end;
      

  4.   

    我的是连ACCESS数据库,DATETIME前后要加#
      

  5.   

    而且用为了去掉datetimepicker的时间,我要用formatdatetime把他变成短日期格式。
      

  6.   

    BenHang.GF_Notedata 
    是字符类型的?
      

  7.   

    select BenHang.GF_Notedata,BenHang.GF_NoteNumber from BenHang,FaYuan where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata  between #'''+formatdatetime('yyyy/mm/dd',DateTimePicker1.Date)+'''# and #'''+formatdatetime('yyyy/mm/dd',DateTimePicker2.Date)+''''#'
      

  8.   

    select BenHang.GF_Notedata,BenHang.GF_NoteNumber from BenHang,FaYuan where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata  between #'''+formatdatetime('yyyy/mm/dd',DateTimePicker1.Date)+'''# and #'''+formatdatetime('yyyy/mm/dd',DateTimePicker2.Date)+'''#'这样试试
      

  9.   

    看好了小猪!!!!设SQL语句为字符串,'#'是引用ACSII码的前缀,字符串类型值须用双引号包裹,给你个例子:(39--单引号)
    var sqlstr:string;
    begin
      sqlstr:='select BenHang.GF_Notedata,BenHang.GF_NoteNumber from BenHang,FaYuan 
       where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata  
       between '+#39+formatdatetime('yyyy/mm/dd',DateTimePicker1.Date)+
       ' and '+#39+formatdatetime('yyyy/mm/dd',DateTimePicker2.Date)+#39;
    end;
    编译时看到的是这样的字符串就对了:
     'select BenHang.GF_Notedata,BenHang.GF_NoteNumber
     from BenHang,FaYuan 
     where BenHang.GF_NoteNumber = FaYuan.FY_NoteNumber and BenHang.GF_Notedata 
     between ''1999/04/01'' and ''2004/04/16'' '
      

  10.   

    NoteDate 是短日期也就是YYYY/MM/DD格式的,不带时间
      

  11.   

    select * from BenHang where GF_Notedata between #'+formatdatetime('yyyy/mm/dd',DateTimePicker1.Date)+'# and #'+formatdatetime('yyyy/mm/dd',DateTimePicker2.Date)+'#'我的这句语句就没问题
      

  12.   

    同意 insert2003(高级打字员)
      

  13.   

    insert2003(高级打字员) 的语句针对的是字符型的啊,我的是日期格式啊,照他的改了会报错,我自己的语句不报错,但就是查不到。数据库里有数据的
    ACCESS数据库有些什么特别的地方要注意吗?
      

  14.   

    啊,问题解决了,把EXESQL改为OPEN就OK了,没注意下面,SQL语句没错