小弟有一个问题:(现用ACCESS数据库),如何返回新增记录状态?????
详细:窗体上有一个DBGRID控件,在新增记录后。DBGRID控件处理插入状态,
如要移动记录则不可以,又返回新增状态。(不设其ENDAND属性),就是总是保持在插入
状态(未成功保存数据之前).

解决方案 »

  1.   

    不懂你的意思,
    如果你想在DBGrid中只显示新增记录的话可以用ADO控件是可以实现的,在李维的关于ADO/COM+/MTS的书上有,自己看吧,
      

  2.   

    在数据记的beforescroll事件中处理,可以用abort取消滚动的动作
      

  3.   

    我的意思是:数据新增后,用户再选择其它的记录时,提示用户是否要保存记录。
    如果要保存用户的话,如果保存不成功时(如出现数据重复等),则DBGRID继续返回
    新增状态。
      

  4.   

    数据集的AfterScroll事件中写
    begin
      if DataSet.State=dsInsert then
         if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
        MB_DEFBUTTON1) then
       try
        DataSet.Post;
       except
         DataSet.Abort;
       end
        else DataSet.Cancel;
    end;
    数据集的On
      

  5.   

    begin
      if DataSet.State=dsInsert then
         if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
        MB_DEFBUTTON1) then
      begin
       try
        DataSet.Post;
       except
         DataSet.Abort;
       end;
      end
        else DataSet.Cancel;
    end;
    上面的代码漏了一个begin  end;
      

  6.   

    晕了,又错了,直接Abort,不是DataSet.Abort,今天怎么搞的
    begin
      if DataSet.State=dsInsert then
         if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
        MB_DEFBUTTON1) then
      begin
       try
        DataSet.Post;
       except
         Abort;
       end;
      end
        else DataSet.Cancel;
    end;
      

  7.   

    今天真晕,上面的代码有点问题,直接Abort就好,不是DataSet.Abort,事件也应该是BeforeScroll数据集的BeforeScroll事件中写begin
      if DataSet.State=dsInsert then
         if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
        MB_DEFBUTTON1) then
      begin
       try
        DataSet.Post;
       except
         DataSet.Abort;
       end;
      end
        else DataSet.Cancel;
    end;
      

  8.   

    本想来接分的,原来天下没有白给的午餐。
    在数据集的AfterScroll下写相关的东东不就行了!
      

  9.   

    还有一小问题, 调用ABORT后, 如何返回初始状态。
      

  10.   

    用DBGridEh在新增记录时进行行锁定
      

  11.   


      还有一小问题, 调用ABORT后, 如何返回初始状态。