You have to enclose the value of pm in quotation marks too:
result = Evaluate({@DBlookup("":"";"":"";"admin";"} & pm & {";1)})
This way it is recognized as a string.
Example:
If pm has a string value "Domino" then Evaluate string has to look like this:
@DBlookup("":"";"":"";"admin";"Domino";1)
but in your original formula version it would be
@DBlookup("":"";"":"";"admin";Domino;1)
BTW, the code would break if pm would contain a quotation mark. If you are sure that can't happen then the code is fine.