Funge, ma il nome delle textarea si ripetono ad ogni gruppo(quando qta1 > 1), 0,1,2 e poi 0,1,2 mente vorrei 0,1,2,3,4,5.

codice:
<%

      Response.Write("<form name=""form"" method=""Post"" action=""prova.asp"" onSubmit=""return CheckForm(this);"">")
      Response.Write("<input type=""hidden"" name=""ID"" value=""")
      Response.Write(ID)
      Response.Write(""">")
      Response.Write("<input type=""hidden"" name=""cat"" value=""")
      Response.Write(Request("cat"))
      Response.Write(""">")
      Response.Write("<input type=""hidden"" name=""tipo"" value=""")
      Response.Write(Request("tipo"))
      Response.Write(""">")


   i = 0


        sql = "SELECT * FROM gallery WHERE gallery.ID = " & ID & ""

  'Response.write(sql)
   Set Dr = conn.Execute(sql)

If Not Dr.EOF then 

   On Error Resume Next
   DR.MoveFirst	  
   while not DR.eof

           'Leggi i dati nel datareader

cas_lenght = DR("cas_lenght")
'response.write cas_lenght

   s = Split(cas_lenght, "-")

Dr.MoveNext
wend
Dr.Close
Set Dr = Nothing
End If

i1 = 0


sql2 = " SELECT qta1"
sql2=sql2 & " FROM cart_adv_amm"
sql2=sql2 & " WHERE cart_adv_amm.ID1 = " & ID & ""

Set rs2 = Server.CreateObject("ADODB.Recordset") 
rs2.Open sql2, Conn
'response.write sql2
rs2.MoveFirst


qta1 = rs2("qta1")
qta1 = FormatNumber(qta1,0)

rs2.Close
Set rs2 = Nothing


%>

devi compilare il modulo per <%=qta1&" "%> 

<script type="text/JavaScript">
<!--
function CheckForm() {

  var f = document.forms[0];
  var n = f.elements.length;
 
  for(var i = 1; i < n; i++){
    if(f.elements[i].value == ''){
      alert('il campo in rosso è obbligatorio');
	  f.elements[i].style.border="2px solid #ff0000";
      return false;
    }
	  f.elements[i].style.border="1px solid #6AA21F";
  }
}
// -->
</script>

<%
    For i1 = 1 To (qta1)

    For i = 0 To UBound(s)


      Response.Write ("<script language=""javascript"">")
      Response.Write ("function MaxCaratteri(Object, MaxLen)")

      Response.Write ("{")

      Response.Write ("      return (Object.value.length <= MaxLen);")

      Response.Write ("}")

      Response.Write ("</script>")
      Response.Write ("
")
      Response.Write ("	[img][/img]")
      'Response.Write ("[*]")


        sql1 = ("SELECT * FROM gallery WHERE gallery.ID =  " & ID & "")
  'Response.write(sql1)
   Set Dr1 = conn.Execute(sql1)

If Not Dr1.EOF then 

   On Error Resume Next
   DR1.MoveFirst	  
   while not DR1.eof
           'Leggi i dati nel datareader

cas_lenght = DR1("cas_lenght")

sArray=SPLIT(cas_lenght,"-")
cod=sArray(i)


      Response.Write(" <textarea name=""")
      Response.Write((i))
      Response.Write("""")
      Response.Write(" onkeypress=""return MaxCaratteri(this,")
      Response.Write(cod-1)
      Response.Write(" );"" class=""textarea1"" />")
      Response.Write("</textarea>")
	  Response.Write ("[*]")
      Response.Write (" TESTO MASSIMO DA INSERIRE: ")
      Response.Write(cod)
      Response.Write ("
")


Dr1.MoveNext
wend
Dr1.Close
Set Dr1 = Nothing
End If

    Next
    Next
	  Response.Write ("

")
      Response.Write("<input type=""submit"" name=""")
      Response.Write(i)
      Response.Write(""" class=""save"" value="" "" />")
	  Response.Write ("

")
      Response.Write("</form>")

%>