Instructions :

This form will compare 2 tables identical in structure and indexing, but not
identical in contents.  It ignores Graphic, binary, formatted memo fields and
any field names you type as a comma separated list into the Ignore field on the
form.  Tables must have a primary index.  Presently hard-coded for 5 keys max,
easily extended.

Use the ellipsis button to select your two tables and give them a meaningful
handle in the appropriate field alongside.  This name will be used to identify
tables in the output table - :PRIV:RESULT.DB.

Your session settings are saved to an .ini file via the form method
GetSetUserProfile() - blank parameter reads from ini, non blank writes to ini.

The program makes an empty copy of the first table being compared into which the
comparisons are written.  2 further fields are added to this table : ErrorCode
and TblHandle.

The program makes 2 passes of each table

1a.  Uses keys to check for records existing in table 1 but not table 2 -
Errorcode = -1.  TblHanlde = Table 2's handle
1b.  Where there is a match on keys, it further checks each field (except ignore
fields) for match.  Any that don't match, records from both tables are written
to   RESULT.DB with a positive incremental matching errorCode pair.
2.   Uses keys to check for records existing in table 2 but not table 1 -
Errorcode = -2.  TblHanlde = Table 1's handle

Example of output :  :PRIV:RESULT.DB

Key  Name           Number    TblHandle       ErrorCode
----------------------------------------------------------------------------------------
2    Keri Jones     5,432.12  Brian's CLRMRSVC  1         }matching pair.  Name wrong
2    Keri Bones     5,432.12  Network CLMRSRVC  1         }in Network version of table.
5    Geoff Stanford 5,434.56  Network CLMRSRVC  -1
6    Brian Rooks    1,234.98  Network CLMRSRVC  -1
8    Rod Hampson      333.55  Brian's CLRMRSVC  -2

Please note, I've skimped on certain error checks in the interests of
simplicity.  The use of FileBrowserEx() procedure restricts this form to later
versions of Paradox.  However, switching to the older FileBrowser() procedure
will make this work in older versions.