Many of us here are not good at macros since we don't use them (OK, maybe just me).
You could probably use a DLookup on the other table to get the multiplier instead of using [trantypes].[multiplier]
The BeforeUpdate event may not be suitable for this. Whatever the contents of the control appear to be, they won't be used in your event unless you're referring to the control's .Text property. If just referring to the control or its default .Value property, the control holds one value while it's displaying another. In fact the control value could be Null. Maybe you need the AfterUpdate event?
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.