PACK
Wai,
That is your problem. PACK closes the table, copies the non-deleted records to a temp table, deletes the old tabel, renames the tmp to the old table anme and then recreates the indexes. When you close the RecordSource for a grid you send the grid into psycho land. It loses its connection to its RecordSource and the column's lose their property settings.
1) opening your tables exclysively is a bad way to work. Your code will NEVER be able to become multiuser that way.
2) it is not necessary to PACK a table every time you delete a record, set delted on and let VFP hide the deleted records from you. For a gird you will need to scroll the record out of sight for it to disappear. I leave them there marked deleted and elt the user scroll if they want to.
3) Packing is a very time comsumming process. With a table of a few hundred thousand records the user could click delete and wait for mintues for the process to finish. Move the data to a file server and it is even longer.