the filter isn't wrong, your method is wrong.
the select list should not pass the delivery charge.
the select list should pass the city name.
the lookup recordset on the confirm page will take that city name and look it up in the database, then set the session variable to the correct delivery fee based on the selection being made in the list.
this can only work though if the values in the select list are the same values stored in the location column of the database.