Mi sono personalizzata questo codice per l'update multiplo su database

codice:
Dim ConnDown
Set ConnDown=Server.CreateObject("ADODB.Connection")
ConnDown.Open "dsn=dati;"
For i=1 to request("numes")

	myVar2 = "IDut"& CStr(i)
	myVar3 = "incarico_inizio"& CStr(i)
	myVar4 = "incarico_fine"& CStr(i)
	myVar5 = "presso"& CStr(i)
	myVar6 = "sededi"& CStr(i)
	myVar7 = "mansioni"& CStr(i)

dim IDut
IDut = request.form(myVar2)
dim incarico_inizio
incarico_inizio = request.form(myVar3)
dim incarico_fine
incarico_fine = request.form(myVar4)
dim presso
presso = request.form(myVar5)
dim sededi
sededi = request.form(myVar6)
dim mansioni
mansioni = request.form(myVar7)

Dim SQLDown,RECDown
SQLDown="select * FROM ut_esper WHERE IDut=" & Session("IDut")
Set RECDown=ConnDown.Execute(SQLDown)
IDut=RECDown("IDut")
SQLDown2="update ut_esper set incarico_inizio='" & incarico_inizio & "' WHERE IDut=" & Session("IDut")
SQLDown3="update ut_esper set incarico_fine='" & incarico_fine & "' WHERE IDut=" & Session("IDut")
SQLDown4="update ut_esper set presso='" & presso & "' WHERE IDut=" & Session("IDut")
SQLDown5="update ut_esper set sededi='" & sededi & "' WHERE IDut=" & Session("IDut")
SQLDown6="update ut_esper set mansioni='" & mansioni & "' WHERE IDut=" & Session("IDut")
ConnDown.Execute(SQLDown2)
ConnDown.Execute(SQLDown3)
ConnDown.Execute(SQLDown4)
ConnDown.Execute(SQLDown5)
ConnDown.Execute(SQLDown6)
Next

ConnDown.Close()
Set ConnDown=Nothing
Tuttavia, se compie il ciclo 3 volte (quindi numes=3), non capisco perchè mi scrive lo stesso record (esattamente l'ultimo) per 3 volte e sovrascrive gli altri 2 con i dati del 3°....
Che mi sono persa????
HELP!