lnTables = ADBOBJECTS(laTables, "TABLE") FOR lnI = 1 TO lnTables USE (laTables[lnI]) ALIAS myTable * For a specific date, use TYPE(). * To find all date fields, put an inner loop below to go FOR lnJ = 1 to FCOUNT() and use FIELD() to get each name and type, and test each date found IF TYPE("myTable.dDateField") = "D" SCAN TRY lcDateTest = DTOC(myTable.dDateField) * OR: *REPLACE dDateField WITH dDateField IN myTable CATCH ? "Bad date on RECNO(): " + TRANSFORM(RECNO()) ENDTRY ENDSCAN ENDIF USE in myTable NEXTIf a bad date is outside of a valid range for the accounting year, etc., then you would use logic.