Jag ser inget fel i koden där. På rad 230 ska du däremot få det felet.
Såg även lite brister på vägen:
72: Recordsetet stängs inte om det är tomt.
178: Recordsetet stängs aldrig.
223: Recordsetet stängs aldrig.
230: Du stänger ett recordset som inte öppnats.
250: Du stänger databaskopplingen på fel ställe.
254: Här ska du stänga databaskopplingen.
257: Du ska inte använda Response.End för att avsluta koden normalt. Den avslutas när filen är slut.
Jag kan ha fel på någon punkt. Koden är inte så bra indenterad, så det är svårt att följa den.
Jag ser absolut inget fel i koden som öppnar recordsetet.
Eftersom du inte använder recordsetet till att uppdatera databasen, och bara ska läsa det från början till slut, så kan du ju öppna det på det resurssnålaste sättet:
strRedPf = "Select * from pf order by datum DESC"
Set RecSetPf = objCon.Execute(strRedPf)
Testa om det blir bättre, annars får du börja felsöka. Kolla att databaskopplingen är öppnad när den där koden körs, och liknande.