First of all, make sure you are assigning a valid connection object. Second, make sure a value is being passed on ShpCD. Maybe the variable is not receiving any value, and you end up with an incomplete SQL Statement, which would throw a missing operand error. For readibility purposes, you should assign the SQL statement to a variable, and then pass the variable to the OPEN command. It will make your life simpler. If ShpCstCode in the database is text, char, or varchar, depending on the database, then you must put it inside ['] single quotes. If none of this helps, then check the recordset CommandType, maybe its set to other than "Text". As for some of the other answers you received before, ShpCstcnn is a connection object, not another string he wants to add to the SQL Statement. The syntax for OPEN takes a connection as the second parameter, which is why he is putting a comma before it.
Ex:
Set ShpCstcnn = CurrentProject.Connection
Sql1 = "Select * from tblStdShipCost Where ShpCstCode = '" & ShpCd & "'"
AmtRst.Open Sql1, ShpCstcnn
Good Luck!