You can't refer to the value of another field in a stored find request. In fact, once you are in find mode, the values of all nonglobal fields will evaluate as empty. Notice all all fields go blank when you enter find mode?
Before entering Find Mode, set the value of a variable to the value of BookCode of MainText. Then put the variable name into the stored request.
Or, if Bookcode of MainText is a global field, don't used stored find requests at all. Enter find mode and use a series of set field steps to set up your find request. Omit Records, when in find mode, will turn the request into an omit records request.
For examples of such scripted finds, see: Scripted Find Examples
Note: I have not set up a script using stored Find Request Criteria in years. Using the "set field while in find mode" criteria is more flexible and doesn't hide the criteria away where I have to open some dialogs in order to see them if I later need to review my script in order to make changes.
Thanks. I had tried this route, as well (see attached). I'll give the link you send a read.
Just another question: If BookCode is roman font and BookCode of mainText is bold, that won't affect it, will it?
In looking through this script, I can see why it won't work. I'll have to think of another way to omit the records.