Ciao, qualcuno può spiegarmi perchè questo codice asp richiamando il cookie o la sessione restituisce sempre valore 4 ?

codice:
<%

   sql = "SELECT * FROM "
   sql = sql & " tbl_list "
   sql = sql & " WHERE 1 " 
   sql = sql & " GROUP BY ID_R "
      
   Set rec = Server.CreateObject("ADODB.Recordset")
   rec.Open sql, cn
      
   if not rec.eof then

%>          

<select name="id_regione" id="id_regione" onChange="cerca_province();">
<option value="0">Seleziona</option>                                                                        

<% 

rec.MoveFirst()  
Do While Not rec.EOF

if rec("ID_R") = 1 then
   R = "AM"
   Response.Cookies("ckeck")("R") = 1
   Session("R") = 1
elseif rec("ID_R") = 2 then
   R = "TU"
   Response.Cookies("ckeck")("R") = 2
   Session("R") = 2
elseif rec("ID_R") = 3 then
   R = "SA"
   Response.Cookies("ckeck")("R") = 3
   Session("R") = 3
elseif rec("ID_R") = 4 then
   R = "CP"
   Response.Cookies("ckeck")("R") = 4
   Session("R") = 4
end if
   
%>

<option value="<%=rec("ID_R")%>"<%=SELECTED(rec("ID_R"), request.querystring("id_regione"))%>><%=R%></option>
                    
<%
rec.MoveNext()
Loop

end if

rec.Close()
set rec = Nothing
%>