As to
"Also what would the check be to see if there is a child record?"...
For the sake of discussion we'll call your Parent table (PARENT.DBF) and the Child table (CHILD.DBF). You can substitute your real table names later.
* --- some time before ---
USE child IN 0 EXCLUSIVE
SELECT child
INDEX ON <field expression> TAG key
USE
* --- some time later (not sequential with above code) ---
USE parent IN 0
USE child IN 0 ORDER key && KEY is the INDEX TAG
SELECT parent
SET RELATION TO <your index field expression> INTO child
SCAN
IF RECNO("CHILD"

> RECCOUNT("CHILD"

* --- Child's Record Pointer is beyond last record ---
* --- No Related Table Record Exists ---
<do whatever>
ELSE
* --- Child's Record Pointer is valid record ---
* --- Related Table Record Exists ---
<do whatever>
ENDIF
ENDSCAN
Note that if you change your SELECT pointer anywhere during the SCAN, you will need to reset it (SELECT parent) before the ENDSCAN. If you do not change it, then no additional SELECT is needed.
Good Luck,
JRB-Bldr
VisionQuest Consulting
Business Analyst & CIO Consulting Services
CIOServices@yahoo.com