It’s not clear if your intention is to make the entire row un-editable or only a set of columns un-editable.
If it is the entire row, then I would suggest disabling the Edit action to prevent changes to the “approved” rows. You can do this by adding an expression into the “Only if this condition is true” property of the system generated Edit action for each table - Diets and Diet Components.
Assuming you have an [Approved?] column on the Diets row, the expression in the Diets Edit action would be:
[Approved?] <> TRUE
For Diet Components, I’ll assume that the proper Parent/Child relationship has been established and that the status still needs to be checked on the Parent record. Let’s say that the id of parent row is saved in a column named simply [Diet]. Then for the Diet Components Edit action, the expression would be:
[Diet].[Approved?] <> TRUE
If you wish to make a set of columns un-editable, then you would use the same expressions above but placed in the Editable_If property of those affected columns.
CAUTION: If you make the entire row uneditable, you will not have a way to make it editable again (in the event of mistake) UNLESS you create some backup plan for this use case, e.g. change the approved column in the datasource directly, or some such back door to correct the problem.
The same problem is true if the [Approved?] column is made uneditable.