Just as a quickie, this is a perfect scenario for a txtQuickFill which can display textual data from one place but actually work from the PK of the lookup data stored in another table. A relational expression can be expressed in the control itself. Also, this control is very fast.
It might be worth you taking a look at this to see if it might help. Take a look in the orders.scx and play with the grid. In there, you can see the txtQuickFill in action displaying values from a lookup table but storing the PK of the lookup item. Obviously, you can use a txtQuickFill on a form - it doesn't have to be in a grid.
Let us know if this helps.
Best
-=Gary