求高手帮帮忙啊!~~小弟感激不尽!!!
程序已经调试通过了,运行之后,有两个地方都没成功,一个是颜色没有正常显示,代码如下:
procedure TForm1.DBGridEh1DrawDataCell(Sender: TObject; const Rect: TRect; 
  Field: TField; State: TGridDrawState); 
  var 
  CTime:STRING; 
  GTime:STRING ; 
begin 
CTime:='09:10'; 
GTime:='17:30'; 
if adoQuery1.FieldByName('ComeTime').AsString >= CTime then 
      DBGridEh1.canvas.Font.color:=clred; 
if adoQuery1.FieldByName('GoTime').AsString <= GTime then 
      DBGridEh1.Canvas.Font.Color:=clGreen; 
DBGridEh1.DefaultDrawDataCell(Rect,Field,State); 
end;
另一个地方是,选择时间段查询,没有成功显示,代码如下:
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; 

解决方案 »

  1.   

    比时间用TDateTime类型
    CTime: TDateTime;
    CTime := StrToTime('09:10:00');
    数据库用 AsDateTime
      

  2.   

    第一个问题,你单步跟踪一下;第二个问题,查一个SQL,如果是SQLSERVER2000,到SqlServer的事件探查器中看一下执行的SQL.
      

  3.   

    对日期或是时间操作,最好使用DateUtils单元里的函数
      

  4.   

    对不起,忘了说我数据库是access
      

  5.   

    access的时间在sql中就不用再加引号了
      

  6.   

    我的数据库是access,不是sql,
    adoquery1.SQL.Add('select * from Attendance where [Date]>=''#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+ '#'' and [Date] <=''#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+ '#'''); 
    这句话,需要怎么改啊??
      

  7.   

    就是改变颜色那个问题,我的DBGRID里面是新建了字段名称,然后用fieldname连接数据库中相应的字段的,是不是应该在相应的字段里面去写,而不是在dbgrid里面写?
      

  8.   

    你用ShowMessage看下adoquery1.Sql.Text 一点一点写,就出来了。
      

  9.   

    第一个问题:
    表结构:cometime,gotime的字段类型是什么,我测试时采用text类型,没有问题。
    第二个问题:
      with adoquery1 do
      begin
        close;
        SQL.text := 'select * from Attendance where [Date]>=#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+ '# and [Date] <=#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+ '#';
        Open;
      end;
      

  10.   

    实在搞不定就用Microsoft Office Access,在它里面用SQL视图,弄好了再把语句复制过来
      

  11.   

    这位大哥,我的cometime,gotime是文本类型,应该就是text啊
      

  12.   

    我测试了下,怎么只能查具体的一天,没有查到时间段
    with adoquery1 do 
      begin 
        close; 
        SQL.text := 'select * from Attendance where [Date]>=#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit1.Date)+ '# and [Date] <=#'+FormatDateTime('yyyy-mm-dd',RzDBDateTimeEdit2.Date)+ '#'; 
        Open; 
      end;