Nope, still gives the same error, not finding "|"...
I can see, however, why your solution might have solved be the problem, but the "Pcodes" are in fact formed by a letter followed by 6 numbers, so there can be no mistake as to whether it's a string or not.
The location codes, however, are stored as text, but are in fact 6 numbers, so maybe the problem lies there, but I don't know where to insert single quotes in the expression. I tried:
Code:
Option Compare Database
Private Sub cboCode_AfterUpdate()
txtLocatie = DLookup("'" & [locatie] & "'", "tblproductie", "[pcode]='" & cboCode & "'")
End Sub
but no go 
I'm a bit stumped, I thought this was one of the easiest things to do in Access, but obviously not