If [DB_Prep::UoM_OD = "Yes"
Didn't you say that the UoM_OD field was either "Met" of "Imp" ? If so it would never be "Yes" so your DB_Prep::TMM will always be in
Instead of a script you may want to make DB_Prep::TMM a calculated value using Case (DB_Prep::UoM_OD = "Met" ; "mm" ; "in")
I'm not sure that you need a script at all for this. You could define the Tmm field as a calculation field with an expression such as:
If ( UoM_OD = "Yes" ; "MM" ; "in" )
Tmm could also be a text field and use this expression as an auto-enter expression--which can make it possible to then edit the value in tmm after the fact if you needed to.
Just to answer your script question, your script could be written to look like this:
If [DB_Prep::UoM_OD = "Yes" ]
Set Field [ DB_Prep::Tmm ; "mm" ]
Set Field [ DB_Prep::Tmm ; "in" ]
When Setting up Set Field, there are two Specify buttons that must be clicked. To get Set Field [Table::Field ; Expression], add set field to your script and click the first button (specify target field). Select Table::Field from the list of fields. Do not click the specify button next to the repetition box. Click OK to close this dialog box. Now click the lower specify button (calculated result) and create the expression to the right of the semicolon (;). Do not try to type in the semicolon.