我在access中增加了"排名"字段,但里面没有数据,表中数据已导入到dbgrid中,里面也有"总分"字段,现在我想通过一个button组件来实现把1到50的数字(总共50个记录)添加到那个"排名"字段中,使他是根据总分来排名的,大家有没有什么办法来实现?最好给出代码。

解决方案 »

  1.   

    var
      ds: TDataSet;
      s:string;
      i:Integer;
    begin
      i:=0;
      ds:= self.DBGrid1.DataSource.DataSet;
       ds.First;
       while not ds.Eof do
       begin
        ds.Edit;
        ds.FieldByName('总分').AsString:=IntToStr(i);
        Inc(i);
        ds.next;
        Application.ProcessMessages;
        //ds.Post;  //这个是提交数据库
       end;
        ShowMessage(IntToStr(i)+'行记录设置好序号');
    end;
      

  2.   

    能不能再问一下,把两张表合并起来显示在DBGRID中,用楼上的代码来对合并的表进行实现,为什么会显示“缺少用于更新或刷新的基本表信息”,难道两张表合并排序后,不能在“排名”字段中增加排名的数字吗?
      

  3.   

    就是我在ACCESS中创建了两张表,stu1和stu2,我利用ADOQUERY组件的ADOQUERY1.SQL.ADD('SELECT * From stu1 union select * from stu2 order by 总分 desc');把两张表合并显示在DBgrid中,两张表的所有字段都是一样的,都有排名字段,现在我想对合并的内容进行把1到50(两张表合并起来共50条记录)的数字显示在‘排名’字段中,用你给的代码会显示“缺少用于更新或刷新的基本表信息”,但是不合并就单纯对stu1表进行操作的话,用你给的代码是正确的,合并起来就不行了,你能帮帮我吗?