Que onda mira al parecer ya encontre tu error lo que pasa es que estas eliminando primero los registros de la tabla anuncio y por lo tanto ya no existen las imagenes de ese anuncio para poder buscarlas en la carpeta imagenes
lo que ienes que haceres eliminar primero las imagenes de la carpeta imagenes y despues eliminar los registros de la tabla es decir , aqui te dejo el codigo modificado. ojala y te funcione.
en caso de que suceda un error postealo o.k?
Código:
<%
fecha_tope = dateadd("d",-30,date())
set oConn = Server.Createobject("Adodb.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("registrate.mdb")&";"
'primero tienes que sacar los nombres de las imagenes para poder eliminarlas de la carpeta imagenes.
imagenes = "select * from anuncio where fecha <= #"&fecha_tope&"#""
set resultado = com.execute (imagenes)
do while not resultado.EOF
foto = rs("Imagen")
foto2 = rs("Imagen2")
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto))
oFile.Delete
Set oFile1 = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto2))
oFile1.Delete
rs.movenext
loop
'una vez que eliminas todas las imagenes de los anuncios que exceden de un mes de antiguedad, entonces ahora si elimina los registros de las tablas
strSQL = "delete from anuncio where fecha <= #"&fecha_tope&"#"
'Aqui solo se ejecuta el delete y no es necesario instanciar (SET) el resultado a una variable por eso solo se queda oConn.execute(strSQL)
oConn.Execute(strSQL)
%>
Me cuentas como te fue