先看看代码
  if trim(edit2.Text)='' then
    begin
      ShowMessage('请输入日期');
      edit2.SetFocus;
      Exit;
    end;
  with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select * from uselog where time1 >= #'+date1.Format(date)+''+time1.Format(time)+'''# and time2 <= #'+date2.Format(date)+''+ +''+time2.Format(time)+''#');
      Open;
    end;
不知道为什么老是提示出错
[Error] Unit1.pas(72): Missing operator or semicolon
[Error] Unit1.pas(72): Missing operator or semicolon
[Error] Unit1.pas(72): Missing operator or semicolon
[Error] Unit1.pas(72): Operator not applicable to this operand type
[Error] Unit1.pas(72): Missing operator or semicolon
[Error] Unit1.pas(73): ')' expected but identifier 'Open' found
那为大侠能帮帮我啊,我想了一天了,实在想不同,真着急啊!!!!

解决方案 »

  1.   

    date1.Format()这个方法是干什么用的?换成FormatDateTime()试试
      

  2.   

    说明 sql的语句写的不对 呵呵
    Error] Unit1.pas(72): Missing operator or semicolon 这个错误,一般都是后面少个分号
    比如
    begin
    somecode1// 这句后面少了一个;
    somecode2
    end;
    编译就会出现Error] Unit1.pas(72): Missing operator or semicolon
      

  3.   

    换成了FormatDateTime
    他也有错误,
    提示是[Error] Unit1.pas(72): Undeclared identifier: 'FormatDateTime'
      

  4.   

    说明 sql的语句写的不对 呵呵
    Error] Unit1.pas(72): Missing operator or semicolon 这个错误,一般都是后面少个分号
    比如
    begin
    somecode1// 这句后面少了一个;
    somecode2
    end;
    编译就会出现Error] Unit1.pas(72): Missing operator or semicolon
    后面也有分号,那是整条语句.
    SQL.Add('Select * from uselog where time1 >= #'+date1.Format(date)+''+time1.Format(time)+'''# and time2 <= #'+date2.Format(date)+''+ +''+time2.Format(time)+''#');那为大侠能帮帮小弟啊????着急啊1!!!!!!!!!!!
      

  5.   

    先看看代码
      with ADOQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Select * from uselog where time1 >= #'+date1.Format(date)+''+time1.Format(time)+'''# and time2 <= #'+date2.Format(date)+''+ +''+time2.Format(time)+''#');
          Open;
        end;
    不知道为什么老是提示出错
    [Error] Unit1.pas(72): Missing operator or semicolon
    [Error] Unit1.pas(72): Missing operator or semicolon
    [Error] Unit1.pas(72): Missing operator or semicolon
    [Error] Unit1.pas(72): Operator not applicable to this operand type
    [Error] Unit1.pas(72): Missing operator or semicolon
    [Error] Unit1.pas(73): ')' expected but identifier 'Open' found
    那为大侠能帮帮我啊,我想了一天了,实在想不同,真着急啊!!!!实际上就这几句,上面那行都不同去看他,多写的!!!!主要查询那4个控件里面的时间!!!
      

  6.   

    建议使用参数:
     with ADOQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Select * from uselog where time1 >= :param1 and time2 <= :param2');     
          Parameters.ParamByName('param1').Value := FormatDateTime('yyyy-mm-dd', date1.datetime);
          Parameters.ParamByName('param2').Value := FormatDateTime('yyyy-mm-dd', date1.datetime);
          Open;
    end;
    以上tim1,tim2为字符型,当为日期型时:
    Parameters.ParamByName('param1').Value := StrToDate(FormatDateTime('yyyy-mm-dd', date1.datetime));
    Parameters.ParamByName('param2').Value := StrToDate(FormatDateTime('yyyy-mm-dd', date2.datetime));
      

  7.   

    with ADOQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Select * from uselog where time1 >= :param1 and time2 <= :param2');     
          Parameters.ParamByName('param1').Value := StrtoDate(trim(edit2.Text));
          Parameters.ParamByName('param2').Value := StrtoDate(trim(edit2.Text));
          Open;
    end;
      

  8.   

    使用参数吧:
     with ADOQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Select * from uselog where time1 >= :param1 and time2 <= :param2');     
          Parameters.ParamByName('param1').Value := FormatDateTime('yyyy-mm-dd', date1.datetime);
          Parameters.ParamByName('param2').Value := FormatDateTime('yyyy-mm-dd', date1.datetime);
          Open;
    end;
    以上tim1,tim2为字符型,当为日期型时:
    Parameters.ParamByName('param1').Value := StrToDate(FormatDateTime('yyyy-mm-dd', date1.datetime));
    Parameters.ParamByName('param2').Value := StrToDate(FormatDateTime('yyyy-mm-dd', date2.datetime));
      

  9.   

    先把两个字符串想加后转化格式,应该可以使用cast('' as datetime)
    access里还要写#,写参数格式也好,读起来要方便些,要不,引号比较麻烦