The RowSource of combo cbbProductID must be something like:
Code:
"SELECT prod.ProductID, prod.Description FROM tblProducts AS prod
WHERE prod.ProductUpdatedOn = (SELECT MAX(prod0.ProductUpdatedOn) FROM tblProducts AS prod0 WHERE prod0.ProductID = prod.ProductID AND prod0.LastUpdated <= " & Me.txtfkOrderID & ")"
When this query returns double set of rows, then you must have double rows in table tblProducts too - which is impossible with ProductID being a single primary key.
NB! You have to update the combos RowSource by some form event, p.e. by Orders form OnCurrent or AfterUpdate event, as you can't use a formula for SQL string as control's property.
And you don't need a field SoldAsPrice in table tblOrderDetails. With your current tables setup you can always calculate it from tblProductPrices as a latest price of selected type for given product with LastUpdated <= OrderDate