Ti posto il mio esempio:
showdata.asp
codice:
<%
set conn = server.createObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("\database\test.mdb")

	sql = "SELECT * FROM tabellaDati"
	set rs = conn.execute(sql)
	
		if not rs.eof then
%>
<form method="post" action="updatedata.asp">
<%
			do until rs.eof
%>



<input type="text" name="<%=rs(1).name%>_<%=rs("campoID")%>" value="<%=rs("campoTitolo")%>">

<textarea name="<%=rs(2).name%>_<%=rs("campoID")%>" cols="20" rows="10"><%=rs("campoTesto")%></textarea>
</p>
<%
			rs.moveNext
			loop
%>
<input type="submit" value="VAI">
</form>
<%
		end if
		
	rs.close
	set rs = nothing
	
conn.close
set conn = nothing
%>
In questa pagina seleziono tutti i record della tabella "tabellaDati" e creo i campi form dando loro come nome una stringa composta da nomeCampo_valoreID.
Il submit manda alla pagina updatedata.asp
codice:
<%
set conn = server.createObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("\database\test.mdb")

	for each item in request.Form
		if instr(item,"_") > 0 then
		temp = split(item,"_")
		fieldName = temp(0)
		fieldName = replace(fieldName,"'","''")
		idValue = temp(1)
		fieldValue = request.form(item)
		fieldValue = replace(fieldValue,"'","''")
		sql = "UPDATE tabellaDati set " & fieldName & " = '" & fieldValue & "' WHERE campoID = " & idValue
		conn.execute(sql)
		end if
	next
	
conn.close
set conn = nothing
response.redirect("showdata.asp")
%>
In questa pagina con un ciclo for leggo le voci presenti nella collection request.form. Ottenere il nome del campo è il valore id è molto facile. Basta fare lo split del valore item in base al carattere underscore _ . L'elemento 0 dell'array rappresentato dalla variabile temp corrisponde al nome campo della tabella del db, mentre l'elemento 1 rappresenta il valore id. Il testo digitato sta in request.form(item)
A questo punto la query SQL verrà composta dinamicamente. fieldName rappresenta il nome del campo della tabella, idValue il valore ID del record da aggiornare, mentre fieldValue il testo digitato. Con questo sistema non si aggiornano i record aggiornando in blocco ogni singolo record, ma aggiornando ad uno ad uno ogni singolo campo.
Nel mio esempio ho predisposto una tabella con 3 campi:
campoID - contatore
campoTitolo - testo
campoTesto - memo
Nella pagina showdata.asp ho previsto solo due campi FORM uno per campoTitolo e uno per campoTesto, prendendo i nomi dei campi mendiante rs(1).name e rs(2).name.
Lo so che sembra complicato e macchinoso, ma penso che sia una soluzione molto pratica in fin dei conti.