You would either need to create a field in each table that is a concatenation of several fields to be your superkey (set to be indexed, duplicates No) or generate the key at runtime as part of your code. It might be easier to store the data, if the size of your database allows this.
In your table, create a field to hold this data. I am troubled that the DonorID is a text field. Do you want to make this an autonumber field? I might also add a DateCreated field and set the default to Date().
Anyway, on your data entry form, put the new field (Call it SupKeyA)and do this code on the Before Insert event (assuming you change DonorID to an autonumber data type):
Dim sKey as String
sKey = CStr(Me.DonorID) & "-" & Me.Name & "-" & CStr(Me.DateCreated)
Me.SupKeyA = sKey
This will add a unique superkey to the record. If you anticipate perhaps changing this person's name sometime in the future, you can also add this code to the Before Update event of the form.
Add this field (Maybe SupKeyA, SupKeyB, SupKeyC) and code to all your data entry forms.
How you update the main database depends on how the users are connecting, or if you are transferring the database file using a memory key, etc. Can you tell me more about how they are doing this?
The idea is that now you can loop through the central TableA, and compare each SupKeyA in the remote database to the SupKeyA field in the main table. If none are found, then copy it over. Then move on to TableB, etc.