Generally speaking single line If statements will perform better... there are fewer calculations to make and fewer (3 instead of 5) lines of code to parse.
The first time-saver is that there is no need to compare The value of [Allocated] to the next value of True.
Also, there is no need to End If.
Admittedly, these performance gains will be negligible in one function, but throughout an entire complex database, it could be significant.
As for why this doesn't work, I do not believe there is enough info to be sure. Is Job a field on the active form? If so, try 'Me.Job'.
Private Sub Allocated_AfterUpdate()
If [Allocated] Then Me.[Job] = [Forms]![Jobs Entry]![Job]
End Sub
You should always reference subforms with their control names followed by .Form to avoid any confusion in case you had multiple subforms.
Sam_F
"90% of the problem is asking the right question.