>>
>>Then wouldn't just a simple IF (VARTYPE(OLDVAL(FIELD(i))<>VARTYPE(EVALUATE(FIELD(i))) be sufficient, or do you need to know when character (or other type) value changes, too?
>
>No, this would not work for me. The comparison should work on many different fields. Some fields will change the value but the type will be still be the same. The above expression will not pick up those cases.
If a change in type is detected, that can only be to/from "X" (.NULL.). You could have a secondary check if you need to also know the value has changed (while it remains the same type).