I am talking about two separate databases ( mdb files ). My scenario is that
as I enhance my product and change access database structure, I want to be
able to offer upgrades to my existing clients and transfer their data to the
new database structure seamlessly. So I need to be able to identify
differences in their existing database and my new database and copy only the
common fields.
Thanks for the explanantion!
This is a complicated and difficult task at the best of times.
Automagically identifying what fields should be copied and what should
not, and what values should be assigned to newly created fields, is
NOT an easily automated process and would require human intelligence;
and often constructing the queries to perform these operations is
difficult.
For starters, you should CERTAINLY split your database: use the
database splitter wizard to create a "backend" with just the tables,
and a "frontend" with everything else, if you haven't already done so.
With this design you can change Forms, Queries, Reports etc. freely,
since giving the user a new frontend links to their existing data
without any major complications.
If you do need to change the structure of your tables, think
carefully. Ideally the table structures should be pretty much cast in
concrete by the time a database is in production. Changing field
definitions would need to be done with great care, since sometimes a
new field must be left NULL, other times it cannot be left NULL, and
so on. I cannot think of any *wholly general* automated solution. You
would need to use a tool like Total Access Detective to *identify* the
differences, and then write custom queries to update them.