Podría ser algo asi, que es practicamente lo que tienes arriba, pero como ves se abre la conexion antes de ejecutar el reader, que es lo que no estas ejecutando en tu funcion. Esta funcion que te pongo se desconecta de la bd una vez que termina la consulta.
Código ASP:
Ver originalPublic Shared Function GetDataReader(st as string) As OleDbDataReader
Dim oConn As OleDbConnection
'...
'...
oConn.open
Dim oCmd As New OleDbCommand(st, oConn)
Dim dr As OleDbDataReader = oCmd.ExecuteReader(CommandBehavior.CloseConnection)
Return dr
End Function