La funcion en si no se encuentra mal programada, lo que sucede es que el objeto rs, se encuentra fuera de ambito, ya que lo declaraste dentro de la funcion y no fuera, lo ideal seria que declararas la variable rs fuera de la funcion, y dentro la inicializas como un objeto Recordset.
De esta manera:
Código:
Dim rs
function conectar_bd (parametros)
codigo...
Set rs = Server.CreateObject("ADODB.Recordset")
end function
Pruebalo y luego me cuentas. Saludos.