jo... a mi eso también me ha pasado en más de una ocasión y me ha vuelto loca.....
Tal vez interpreta que el autonumérico es un number y en cambio el valor que recibe del formulario lo interpreta como un string. Prueba a pasar a string el autonumérico para hacer la comparación...
Do Until rs.EOF
if cod= cstr(rs("cod_socio")) then
Response.Write "estoy aki dentro"
end if
rs.MoveNExt
Loop
... por probar....