Cita: otra cosa, que tampoco puedo usar replace porque me dice que es null, no c que hacer,he tratado y tratado y nada.
Sobre lo primero, no le veo el problema... si es mayor a 500 (por lógica, no es null), entonces no entra en el if y no usa el mid...
Aunque te recomiendo, para probar la lógica y eliminar el mensaje de error, hacer algo así:
texto = RS.fields("noticia").value
x = len(texto)
if X > 500 then
response.write("mayor a 500")
else
response.write("menor de 500")
end if
Con respecto a lo que cité, me ocurrió algo similar hace mucho tiempo (tanto que ya no recuerdo cómo lo solucioné -aunque tampoco recuerdo cosas de la semana pasada

..

-) pero era más o menos así la situación:
Al crear un registro si el usuario no especificaba nada para almacenar en el campo MEMO, luego al hacer un replace de dicho campo para reemplazar los saltos de lineas por <br>, el sistema me daba error (el mismo que a vos)... pero al meter datos en dicho campo y luego eliminarlo por completo (dejarlo vacío, null... como sea), el sistema no daba errores...
ah! el problema era que no pasaba de la comparación... digamos con pseudo-código:
Si campo_memo NO es nulo
reemplazar salto de línea por <br>
fin
el tema es que si el campo estaba vació desde un principio (nunca se le metió contenido desde que se generó el registro), no cumplía que fuera nulo... no lo tomaba y siempre intentaba hacer el replace... si el campo tenía contenido pero luego se eliminó, entonces SI se salteba el replace.
no recuerdo si lo solucioné haciendo una de estas dos cosas:
1- meterle un contenido que para el sistema signifique "nulo", al hacer el insert, en caso de no especificar contenido para ese campo (como, justamente, la palabra "nulo")
2- hacer varios chequeos:
If NOT IsNull(Rs("campo_memo")) OR Rs("campo_memo") = "" OR Len(Trim(Rs("campo_memo"))) < 1 then...
espero que sea de ayuda
saludos