procedure TfrmTest2.btn1Click(Sender: TObject);
begin
  adoquery1.Active:=False;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('select * from frmTest1');
  adoquery1.Active:=True;
  begin
  if cbb1.Text='升序' then
     adoquery1.Recordset.Sort:='年龄 asc'
  else
     adoquery1.Recordset.Sort:='年龄 desc'
  end;
end;
我哪里出错了,求指导下,想的头疼

解决方案 »

  1.   


    procedure TfrmTest2.btn1Click(Sender: TObject);
    begin
      adoquery1.Active:=False;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from frmTest1');
      adoquery1.Active:=True;
      begin{目测此处多了个begin}
      if cbb1.Text='升序' then
         adoquery1.Recordset.Sort:='年龄 asc'
      else
         adoquery1.Recordset.Sort:='年龄 desc'
       end{目测此处多了个end}
    end;
    改后:procedure TfrmTest2.btn1Click(Sender: TObject);
    begin
      adoquery1.Active:=False;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from frmTest1');
      adoquery1.Active:=True;
      if cbb1.Text='升序' then
         adoquery1.Recordset.Sort:='年龄 asc'
      else
         adoquery1.Recordset.Sort:='年龄 desc'
    end;
      

  2.   

    //上面少了一个分号;procedure TfrmTest2.btn1Click(Sender: TObject);
    begin
      adoquery1.Active:=False;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from frmTest1');
      adoquery1.Active:=True;
      if cbb1.Text='升序' then
         adoquery1.Recordset.Sort:='年龄 asc'
      else
         adoquery1.Recordset.Sort:='年龄 desc';
    end;
      

  3.   

    嗯!多个end!
    procedure TfrmTest2.btn1Click(Sender: TObject);
    begin
      with qry1 do begin
        close;
        sql.clear;
        sql.add('select * from frmTest1');
        open;
        if cbb1.Text='升序' then
          Recordset.Sort:='年龄 asc'
        else
          Recordset.Sort:='年龄 desc';
      end;
    end;
      

  4.   

    这样,就可以了:
    procedure TfrmTest2.btn1Click(Sender: TObject);
    var SQL:string;
    begin
      SQL:='select * from frmTest1 ';
      if cbb1.Text='升序'
        then SQL:=SQL+'order by ''年龄'''
        else SQL:=SQL+'order by ''年龄'' desc ';
      adoquery1.Active:=False;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add(SQL);
      adoquery1.Active:=True;
    end;
      

  5.   

    adoquery1.Sort 
    不明白为什么在前面加个recordset
    sort属性,设置 完之后不需要手工刷新的
      

  6.   

    procedure TfrmTest2.btn1Click(Sender: TObject);
    begin
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from frmTest1');
      adoquery1.Open;//一般情况下尽量不要用Active属性,尽量使用Close和Open过程
      case cbb1.itemindex of //尽量用CASE吧,不容易眼花
    0: adoquery1.Sort:='年龄 ASC;
    1: adoquery1.Sort:='年龄 DESC;
    else
    adoquery1.Sort:='';//重置
    end;
    end;