Ken,
> For this reason, I typically just go with a SELECT statement and I do not drop any tables onto the form. If I do not USE the table, obviously, I do not SET ORDER TO the table.
Do you mean, to locate a record, you do not use LOCATE FOR, but use SELECT WHERE recordid=m.ncurrentid (recordid actually is the base expression for one of the table's indexes) ?
You " do not drop any tables onto the form", in order to reduce network problem? If so, there will be update conflicts? Since no table was opened, OLDVAL() and CURVAL() will not be useful to determine conflicts. It makes update routine hard to make. Am I right? I could FLOCK() all the tables first and then do update, so there is no need to check for OLDVAL() and CURVAL(). But FLOCK() still brings down the whole table across the network, and thus reduce performance, since it requires an alias name that must be USE first,yes? I think you must have workarounds about this problem. Could you please let me know how to do it?
Regards,
Nilson