>>If not using .NULL. ?
>>if empty(abs.late + abs.absent + abs.early)
>> messagebox(...
>
>Your statement:
>IF Abs.late==0 AND Abs.absent==0 AND Abs.early==0
> MESSAGEBOX('You need to make a non-zero entry') + CHR(13) + ;
> 'in either Late:, Absent:, or Early:', 0+48+0, 'Error')
>
>I believe you closed the ")" to early try the following
>IF Abs.late==0 AND Abs.absent==0 AND Abs.early==0
> =MESSAGEBOX('You need to make a non-zero entry' + CHR(13) + ;
> 'in either Late:, Absent:, or Early:', 0+48+0, 'Error')
>ENDIF
This seems to take too long. I'd suggest using a different alias instead of ABS, because ABS is a keyword. We've seen weirder things happen already when keywords are used as variable names, field names, aliases or whatever.
Having something else instead of English for a native language comes as a blessing sometimes - my alias would probably be ODS, which surely doesn't sound like a keyword.