这个是我的保存按钮的代码,但我每次保存了一个客户的记录后,在右边用ASDOTABLE1连接的DBGRID都显示这客户的所以历史记录,请问需要加什么代码可以让
那个DBGRID不显示历史记录,因为我是要让这个DBGRID让客户知道自己输入了什么,
什么然后在报表打印出来就可以了procedure TForm1.Button1Click(Sender: TObject);
begin
  DataModule2.ADOTable1.Append;
  DataModule2.ADOTable1.FieldByName('pid').AsString := self.Edit1.Text;
  DataModule2.ADOTable1.FieldByName('gid').AsString := self.Edit3.Text;
  DataModule2.ADOTable1.FieldByName('num').AsString := self.Edit8.Text;
  DataModule2.ADOTable1.FieldByName('price4').AsString := self.Edit7.Text;
  DataModule2.ADOTable1.FieldByName('date').AsString := self.MaskEdit1.Text;
  DataModule2.ADOTable1.FieldByName('tol').AsString := self.Edit9.Text;
  DataModule2.ADOTable1.FieldByName('did').AsString := self.MaskEdit2.Text;
  DataModule2.ADOTable1.Post;
end;

解决方案 »

  1.   

    dbgrid的数据集另设成一个adoquery,再设置查询。
      

  2.   

    我现在仍然用
    DataModule2.ADOTable1.FieldByName('pid').AsString := self.Edit1.Text;
      放数据进表里面
    新建立一个ADOQUERY1,让DBGRID和ADOQUERY连接
    在ADOQUERY上的SQL写SELECT * FROM A表
    然后ACTIVE=TRUE
    那么我的ADOTABLE就和GRID没有了关系了
    那么我在ADOTABLE上写如数据保存。,GRID是一点显示都没有了
    不明白
      

  3.   

    可以在适当的时候设置ADOTable的MaxRecords属性为1
    在需要显示更多记录的时候再设为0
      

  4.   

    up
    大家遇到过这情况吗
    ilang(中雨) (  ) 前辈的方法我会尝试一下还有其它方法吗
      

  5.   

    看李维的ADO/Mts篇,里面有详细的解答
      

  6.   

    建议把adotable1换成adoquery1,datasource连adoquery,dbgrid连datasource,当执行完操作后在formactive事件中写
    adoquery.filtered:=false;
    adoquery.filter:='a='123'';//写过滤条件(只看最新的一条)就可以了,就相当与sql中where后语句
    adoquery.filter;=true;
    这样就可以在你每次插入新记录后就会自动过滤显示出所想要的数据,而在打印的时候全部都会打出啊!
      

  7.   

    按日期过滤呢?
    adoquery.filter:='date=''+self.MaskEdit1.Text+'''
      

  8.   

    smilelhh(blue) (  ) 
    的办法我想过