This is a problem I keep running into quite often and today again I spent an hour wondering why my code wouldn’t work.
What I was trying to do was to use the Lists WebService (i.e. lists.asmx) to add contents on to a WSS list via the UpdateListItems() method.
The reason for the hiccup in the code was that when trying to add a value to a field whose name consists of multiple words (for instance "Last Name") the field should be referred to with a "_x0020_" separating the words (i.e. "Last Name" becomes "Last_x0020_Name"). Actually I knew that, but it had got lost somewhere deep down in my brain and failed to be recalled when needed.
So next time if any of you are wondering why you keep getting the return value "<ErrorCode>0x81020014</ErrorCode><ErrorText>No such field name...", it could just be that field you are referring doesn’t exist or contains multiple words and needs to be referred to as above.