Fixed it - when I created the report initially, my finished product primary key was based on both finished product ID and batch ID. It worked fine, so I went on to tweak my form/subform for entering recipes. In its development, I took some great advice from Pat Hartman to build recipes on percentage of final rather than individual batches, and now multiply the final weight by desired batch amount after the fact. But when I changed the primary key to simply finished product ID, my report wouldn't play with the new guys! Change one thing, sometimes change a whole lot more than you meant to, or realize!
Back to the original post: I have a running sum invisible on the subform footer, adding the percentage of each ingredient as the recipe is being entered. That is referenced and visible on the main form (a reminder for data entry to not go on until and unless it is 100%). The problem with BeforeUpdate on the subform starts with adding the very first ingredient - unless it's 100% it won't let me continue and add another since the =sum is not 100% yet. Perhaps I need to put the BeforeUpdate on the main form's footer instead of on the form itself. That's what I'm going to play with next anyway.
Thank you again for your help and advice - it is all greatly appreciated!