Newbie is correct....using DLookup in the control source of a textbox means
that the textbox is unbound and cannot directly/automatically store its data
in a field in the form's recordsource.
(One should ask -- why would you need to store this value in a table if it's
already available in another table, as evidenced by the ability to use
DLookup to find its value based on something in the currrent form/table?)
Another way to accomplish this storage is to not use DLookup in the
textbox's control source. Instead, bind that textbox to the desired field,
and then use code on the AfterUpdate event of the control that provides the
"criterion" value for DLookup expression and write the value into that
textbox. But again...consider my question in the second paragraph.