"at beginning of Table" error

Does anyone know what causes the "at beginning of Table" error message
to popup?

Heres the setup.

1 master table and 7 detail tables in a data module, all connected to a
tDataBase, and all in cachedupdate mode.
One main form displays master info, and many forms that display detail
info. All Info is save to tables when a "Save Button" is clicked.

On the main form is a button that calls up another form to look up a
client to display.  This form has a couple of edit boxes, a dbgrid, a
button, and a TTable and TDataSource. The Table points to the same table
as the master table in the datamodule. When you type in the edit boxes,
the table goes to the nearest match of what is typed.  The grid displays
that match. When you find the client you want, you either click the
button or double click the row in the grid and the master table in the
data module goes to that record and the window closes.

This is the code:

{Find the match when Edit box changes}

procedure TLookUpClientF.PNEditChange(Sender: TObject);
Var
  OldIndx : String;
begin
  with Table1 do
    begin
      DisableControls;
      OldIndx := IndexFieldNames;
      IndexFieldNames := 'Policy Number';
      FindNearest([PNEdit.Text]);
      IndexFieldNames := OldIndx;
      Enablecontrols;
    end;
end;

{Match up master table in button click and grid double click}

procedure TLookUpClientF.Button1Click(Sender: TObject);
begin
  DataM.clientT.CachedUpdates := False;
  DataM.ClientT.GotoCurrent(TAble1);
  DataM.ClientT.CachedUpdates := true;
  Close;
end;

This is the problem:

This worked fine for a while then all of a sudden the user started
getting the "at beginning of table" error when they clicked on the
button or grid for some of the clients but not all of them. If you
clicked the 'OK' button on the warning box and then click the button or
grid again it updated the master table. But if you made any changes to
the client, either master or detail tables, and tried to save it you
would get the error message "not in Cache update mode". All saves are
made using TDataBase.ApplyUpdates([Table1,Table2....ect.]).  I figure
the CacheUpdate Error is happening because 'DataM.ClientT.CachedUpdates
:= true;' isn't being performed because of the first error and I can fix
with a "try ... Finally" statement.  

What I want to know is what is causing the "at beginning of Table"
error?  I made a couple small changes to a detail table, and I couldn't
get the error to happen again, but figure it will be back.

thanks for any help.
suzy...@prairie.lakes.com

p.s.  just got a call from user who said she got a "data structure
corruption" error for the same master table when she tried to save some
changes. The error mentione the table by name.  HELP is needed badly.