la operacion no está permitida si el objeto está cerrado

tema enviado por abel en ASP
tema iniciado el 16/11/2007

hola, me sale el error de que la operación no está permitida si el objeto está cerrado. Me ocurre al sacar por pantalla una tabla. sólo da el error cuando la tabla tiene muchas filas, si lo hago con menos filas funciona, este es el código

query = "..... ";
   CONEX = Server.CreateObject("ADODB.Connection");
   CONEX.open(conexion);
   consulta = CONEX.Execute(query);
   if (!consulta.EOF)
   {
    cadena1 = "<XML ID='DatosGrid'> \n\t<DATOS>\n";
    while (!consulta.EOF)
    {

     qu_modelo = consulta("INMODCODMODEL") + "";
     qu_descripcion = consulta("INMODDESCRIP") + "";
     qu_marca = consulta("INMARDESCRIP") + "";
     
     cadena1+="\t\t<FILA>\n\t\t\t<D1>"+ qu_marca + "</D1>\n\t\t\t<D2>"+ qu_modelo + "</D2>\n\t\t\t<D3>"+ qu_descripcion +"</D3>\n\t\t</FILA>\n";
     Response.write(cadena1);
     cadena1="";
     consulta.MoveNext();
    }
    Response.write("</DATOS></XML>");
    consulta.Close();
    
   }
   CONEX.Close();
   CONEX= null;

<SCRIPT FOR=Grid EVENT=onreadystatechange>
 // When the table's readyState is complete, the table is fully expanded
 if (this.readyState == 'complete')
 {
  if (pinchado%12==0)
  {
   pos=parseInt(pinchado/12,10)-1;
   mod=1
  }
  else
  {
   pos=parseInt(pinchado/12,10)
   mod=pinchado%12;
  }
  if (pos==posicion && mod!=0)
  {
   Grid.rows[pinRel].style.backgroundColor = '#F67B4A';
   cambio=1;
  }
  else if (pinchado!=0 && pos==posicion-1 && mod==0)
  {
   Grid.rows[pinRel].style.backgroundColor = '#F67B4A';
   cambio=1;
  }

  if (pinRel!=0)
   DatosGrid.recordset.AbsolutePosition=pinRel;
  else
   DatosGrid.recordset.AbsolutePosition=1;
 }
 
</SCRIPT>

el error lo da en la ultima sentencia DatosGrid.recordset.AbsolutePosition=1

Gracias