Я только что попробовал это, используя несколько таблиц, которые я связал с SQL-сервером, и он работает просто отлично (извините, у меня нет оракула БД для проверки), но у меня есть несколько вещей, которые вы можете попробовать.
Во-первых, в вашей строке DIM вы не указываете тип для cnn и rs.Как правило, это плохая практика, поэтому замените ее на что-то вроде
Dim cnn as ADODB.Connection
Dim rs as ADODB.Recordset
Во-вторых, вам нужно закрыть связь между операторами?Лучше держать его открытым и просто повторно использовать.Также, как сила хаббита, я также склонен закрывать любой открытый объект, а также устанавливать его на ничто, например
Set cnn=nothing
Если вам нужно закрыть его и открыть снова, попробуйте установить его на ничто, посмотрите, поможет ли это