The very first time that you set up a synchronization in Sync
Exchange
with an Access table, two fields are created in the Access table that help keep
track of new and existing records and the changes to the records since the last
sync with a handheld device. Before those fields are created, Sync Exchange has
no knowledge of the data in the Access table.
When you create a configuration in Sync Exchange to an Access table for the
first time, if the Access table and the HanDBase database that you connect to
that Access table both have records in them, then all the records in the
HanDBase database and all the records in the Access table will be used to create
a combined set of data. If, however, you have the same exact records in the
HanDBase database and the Access table, already, Sync Exchange will have no way
to know that, and so duplicate records can result from this.
The most common cause for this would be a situation where the HanDBase
database was created by an import from the Access table (through HanDBase Data
Exchange). An import through Data Exchange
to create a HanDBase database from an existing Access table would result in a
HanDBase database that has all of the records from that Access table. After
that, setting up that same HanDBase database (which already has all the records
from the Access table) to sync with that Access table would result in a
combination of each record from that HanDBase database and each record from that
Access table -- a duplication of each record.
The better option is to have Sync Exchange create the HanDBase database for
you when you create the configuration in Sync Exchange. This is described in the
first scenario in the article "What are the basics of setting up a
synchronization with Sync Exchange to MS Access?" at http://www.ddhsoftware.com/knowledgebase.html?UID=202505080354583.145.116.193&read=227
If you have already imported from Access with Data Exchange to create a new HanDBase
database, and then set up Sync Exchange to between that HanDBase database and
the same Access table, and have duplicate records in both the HanDBase database
and the Access table, the easiest solution would be to use a query in Access to
remove the duplicate records.
If the duplicate records are only in the HanDBase database (which would mean
that Access is rejecting all of the records in the HanDBase database in order to
prevent duplicates), Access will continue to reject the existing records in the
HanDBase database. The easiest path from here would be the following:
Remove the original configuration in Sync Exchange
Delete the existing HanDBase database from the handheld
Synchronize the handheld with the HanDBase conduit. This will not affect the
Access table, since the configuration in Sync Exchange has been removed.
Then, create a new configuration in Sync Exchange, as described in the
article at http://www.ddhsoftware.com/knowledgebase.html?UID=202505080354583.145.116.193&read=227.
If you have already made changes to the HanDBase database (such as adding new
fields), then you can also do the following:
Remove the configuration in Sync Exchange. This will prevent
synchronization of changes to the data between the HanDBase database and the
Access table.
Open the HanDBase database on the handheld or in HanDBase Desktop, and use
the option to delete all the records in the HanDBase database.
Synchronize the handheld with the HanDBase conduit. This will not affect the Access table, since the configuration in Sync Exchange
has been removed.
Open the Access table directly from MS Access.
Then (and this is the only time you would want to do this) delete the
fields "rhdrinfo_" and "rhdrid_" in your Access table (these are the fields that
were created by Sync Exchange).
Then, create a new configuration in Sync Exchange connecting that HanDBase
database to that Access table.
|