>VARTYPE(ovalid)="O".AND.(Ovalid.nlocked=0.OR.source(complevl,"CompLevl"))&& Field rule > >IIF(VARTYPE(ovalid)#"O","Field validation failure in COMPLEVL","") && ErrorI'm still curious about why you pass the field value to source(). Can't source() just read the value from the cursor, since it has the field name?