If you choose to manually change Rowsource on AfterUpdate using VBA, then your code has wrong syntax:
If the Bound Column in Me.Machine is a number:
Code:
Me.Protocol.RowSource = _
"SELECT Protocol " & _
"FROM tblPhysicsQCPinnacleProtocol " & _
"WHERE Manufacturer = '" & DLookup("Manufacturer", "tblScannerLookup", "[Machine] = " & Me.Machine) & "'"
If it is a text field(string):
Code:
Me.Protocol.RowSource = _
"SELECT Protocol " & _
"FROM tblPhysicsQCPinnacleProtocol " & _
"WHERE Manufacturer = '" & DLookup("Manufacturer", "tblScannerLookup", "Machine = '" & Me.Machine & "'") & "'"
Your initial query had Protocol twice in the SELECT clause, not sure if that was typo or you wanted to select and ID number and the protocol name. If the latter, then those two fields can't have the same name.
And don't forget to put Me.Protocol.Requery at the end of the AfterUpdate code.
PS: I assumed Manufacturer is a text field (string), by the way.