在table的表中建一个字段作ID,用DBTEXT取出它的值赋给statusbar.

解决方案 »

  1.   

    statusbar.simpletext := table1.recno  + '/' + table1.recordcount;
      

  2.   

    在Tabel1的OnAfterScoll事件里加入语句:
    StatusBar1.SimpleText := format('%d/%d',[Table1.RecNo,Table1.RecordCount]);
      

  3.   

    用RecNo好像不行,它总是显示为-1,我用的是access2000的数据库;

    to cdkogh(xp++):
    一定要写在Tabel1的OnAfterScoll事件里吗?我想写在dbgrid1事件里,可以实现吗?
    谢谢!
      

  4.   

    对dbgrid的操作实际就是对数据集的操作,你把事件写在那里效果都差不多。当然数据集提供了一个事件让你调用那当然是最好的
      

  5.   

    某些数据库是不支持recno的,你的access表中最好加入id字段做标识
      

  6.   

    在表中加id字段是可以的,但有一个问题就是--我现在要按不同的索引排序,也就是说statusbar里的当前记录号要随着索引的不同而相应地改变,如果是用id的方法就比较麻烦了,难道要每排序一次就改写一次id?最后一个问题了,请赐教,谢谢!
      

  7.   

    你是用什么访问数据库的?
    如果你用的是MIDAS技术,那就好办了。因为TClientDataSet的RecNo方法总是可用的,能够正确地返回记录号。
    至于其他数据访问技术,我觉得好像没有什么办法能够直接达到你要求的功能。因为毕竟确定总的记录数是一个消耗资源的操作。我的想法是,使用一个TQuery,用类似于“SELECT COUNT(当前排序字段) FROM MyTable WHERE 字段值 < 当前值”的语句来确定由多少个记录在当前记录之前,那么当前记录好久应该是这个值加上1。但是这只对索引是唯一索引时有效。