Insert Into ca_InOut ; (cid,cname,itype,nhperweek,tdatetime,iinout) ; VALUES ; (Thisform.emp_cid,Thisform.emp_cname,Thisform.emp_itype,; Thisform.emp_nhperweek,Thisform.tInOut,Thisform.ninout) Thisform.Dataenvironment.ca_InOut.CursorRefresh() If Empty(Thisform._textbox2.Value) Thisform.inout_type(Thisform.ninout) Endif Thisform._textbox2.Value = Thisform._textbox2.Value + " " + ; ttoc(Thisform.tInOut) Thisform.ninout = -1 Thisform.tInOut = "" Thisform.emp_cid = "" Thisform.emp_cname = "" Thisform.emp_itype = 0 Thisform.emp_nhperweek = 0It must be when the CursorRefresh() is fetching new records -> moving the record pointer (because of Insert Into) -> updating the table. Haven't tested above with the table buffering but with this logic if CursorRefresh is done before Tableupdate() all changes are overwritten with the old values except the new inserted ones which are removed from the ca_cursor.