Hola, no entiendo que esta mal segun yo esta todo perfecto en este code, haber si ustedes encuentran aklgo malo

ME SALE:
error '80020009'
/Mes/Asp/was2/monitor2.asp, line 268
la cual corresponde a la linea 19 de este code:
Código ASP:
Ver originaltarget=cint(registros16n.fields("target"))'## Definicion de variable Target
Código ASP:
Ver originallinea16="L16N"
SET conexion16n=Server.CreateObject("ADODB.Connection")
conexion16n.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MAPLE01;UID=sa;PWD=messrv;DATABASE=wasp "
SET registros16n=Server.CreateObject("ADODB.RecordSet")
registros16n.open"EXEC monitor '"&fecha&"','"&linea16&"','"&horamia&"'",conexion16n
SET conexion4=Server.CreateObject("ADODB.Connection")
conexion4.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MAPLE01;UID=sa;PWD=messrv;DATABASE=wasp "
SET registros4 = Server.CreateObject("ADODB.RecordSet")
registros4.open"SELECT AVG(PESO)as promedio,o.linea from Optimas as o INNER JOIN pesos as p on o.codigo =p.codoptima WHERE fecha >='"&fecha&"' AND hora='"&horamia&"' AND o.linea='L16N' GROUP BY LINEA",conexion16n
do while not registros16n.eof
promedio=cint(registros4.fields("promedio"))
do while not registros4.eof
target=cint(registros16n.fields("target"))'## Definicion de variable Target
OP=(promedio-target)/target '### Definicion de operacion de la variable OP para ser mostrada en la tabla
saving=(PROMEDIO-target)*NumBolsas '### Definicion y operacion de la variable SAVING para mostrar en la tabla
Datos(registros16n) 'Llamado de datos
response.write("<td>"®istros4.fields("promedio")&"</td>")
Calculos 'Llamamos al Procedimiento
response.write("</tr>")
registros16n.movenext
loop
conexion16n.close
registros4.movenext
loop
conexion4.close