Remote_addr är en sträng, du måste alltså ha apostrofer runt. Dessutom: skriv ut sql-frågan så du ser att du har med dig alla värden, framför allt då session("id"). Om den är tom är det inte konstigt om inget uppdateras.
Connect.Execute anropas som en sub och returnerar inget då. Väljer du att sätta ditt paranteser för att få ett funktionsanrop så kommer den returnera ett recordset som man inte kan skriva ut.
Prova detta:
Response.write "UPDATE users SET ip_nr = '"& Request.ServerVaraibles("REMOTE_ADDR") &"' WHERE id = '"& Session("id") &"'"
Eller möjligen:
sql = "UPDATE users SET ip_nr = "& Request.ServerVaraibles("REMOTE_ADDR") &" WHERE id = '"& Session("id") &"'"
Response.Write sql
Response.End
Connect.Execute sql,,128