You could include the UnitPrice in the combo box Row Source. I will say
that your combo box Row Source is ProductID, Product, UnitPrice. The combo
box Bound Column is 1, the Column Count is 3, and the Column Widths are
0";1.5";1" (or something like that). If you don't want to see the UnitPrice
in the drop-down, set the third column width to 0".
To store the UnitPrice in a field, in the combo box After Update event:
Me.txtUnitPrice = Me.cboProduct.Column(2)
Columns are numbered from 0 in this case, so Column(2) is the third column.
If you don't want to store the UnitPrice, set the Control Source of the
UnitPrice text box to:
= Me.cboProduct.Column(2)
Note that if you do not store the UnitPrice (presumably the combo box is on
an OrderDetails subform. linked to an OrderDetails table, or something of
the sort), if it changes in the Product table it will change in past Order
records.
To use DLookup, in the combo box After Update event:
Me.txtUnitPrice = DLookup("[UnitPrice]","[tblProducts]","[ProductID] = " &
Me.ProductID)
This assumes the combo box is bound to ProductID, and that it is a Number
field.
Details may vary depending on the details of your database structure, field
names, control names, etc. If you need more information you will need to
provide more details.