>When a table is added to a DBC it is linked with a unique id. One cannot overwrite an old table with a new one by the same name because the ids won't match and the DBC will complain.
>Question: What is the best method to update an EXE of an previously installed app without overwriting the old data tables (hence, the data)?
I've done one which actually operates by creating a temp directory, moves all the tables and DBCs there, then recreates them anew and appends from the old ones (if any). I've made it pretty complicated because it moves them one by one... but I'll think it over.
Btw, not much of a unique id - it simply stores the DBC name in the extended portion of the table header, and the table's name in the DBC does get a numeric ID value, but it's there just to keep connected with other DBC's records concerning the same table (i.e. its fields & indexes); anytime you pack the database, it gets renumbered, and equal to Recno("dbc").