Cached Updates problem: identical records get added


I am working on a D3 application with MSAccess.
I have some 7 odd tables which are of the form:

Table1 is a mastertable for table2,
table2 is master table for table3...
and so on. all tables are indexed on the link field

in almost all cases the key field in the detail table links to a field
in the mastertable. In such cases there is no problem. but when the
link field is not a key field in the detail table and i try to apply
updates, i get the following error:
'Key Violation' and the DBGrid shows two identical records.

The same error comes if i have a simple table which is not indexed, so
i get around it by indexing the table. This error does not happen
always, just about 3 out of 5 times esp when the number of updates is
high. it generally tends to work fine with one or two updates.

can some one help me?