Hola, es que el puntero del recordset quedó en el último registro (o en EOF, en realidad). Para volver a utilizar el recordset, debés posicionar el puntero en el primer registro:
Código:
<% RS.MoveFirst %>
<select size="1" name="comunas">
<% While Not RS.Eof %>
<option value="<% Response.Write(RS("Codigo")) %>"><% Response.Write(RS("Codigo")) %></option>
<%
Rs.movenext
Wend
%>
</select>
Y unas aclaraciones:
1- Debés quitar el <select></select> del While
2- Debés darle un value al <option>
Saludos y bienvenido al foro.