Echando un primer vistazo a tu código el primer error que veo es que cuando haces un update estás intentando almacenar "algo" en un recordset.
Debes saber que eso solo es posible en las consultas de tipo SELECT. En las consultas en las que haces cambios en la base de datos del tipo DELETE, UPDATE, INSERT debes utilizar simplemente oConn.Execute(sql2)
Espero que este concepto básico te ayude a depurar un poco más ese código.
Un saludo
Txarly