Add the ADO Ext 2.5 for DDL and Security reference to your application and check it it has a method for packing dBase databases. It's been a LONG time since I worked with dbfs, but if I remember right, when you delete a record, you only tag the record as deleted. To undelete a record, you untag it.
The only way I know how to pack a dbf database, is the old way:
(1) Copy the dbf to another name, which copies structure and only untagged records.
(2) Erase the original dbf with tagged and untagged records.
(3) Rename the dbf created in step 1, giving it the same name as the original dbf.
(4) Create the index files.